{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Deep Learning Models -- A collection of various deep learning architectures, models, and tips for TensorFlow and PyTorch in Jupyter Notebooks.\n",
    "- Author: Sebastian Raschka\n",
    "- GitHub Repository: https://github.com/rasbt/deeplearning-models"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Sebastian Raschka \n",
      "\n",
      "CPython 3.6.8\n",
      "IPython 7.2.0\n",
      "\n",
      "torch 1.0.0\n"
     ]
    }
   ],
   "source": [
    "%load_ext watermark\n",
    "%watermark -a 'Sebastian Raschka' -v -p torch"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- Runs on CPU or GPU (if available)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Model Zoo -- Conditional Variational Autoencoder\n",
    "\n",
    "## (with labels in reconstruction loss)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "A simple conditional variational autoencoder that compresses 768-pixel MNIST images down to a 35-pixel latent vector representation.\n",
    "\n",
    "This implementation concatenates the inputs with the class labels when computing the reconstruction loss as it is commonly done in non-convolutional conditional variational autoencoders. This leads to sightly better results compared to the implementation that does NOT concatenate the labels with the inputs to compute the reconstruction loss. For reference, see the implementation [./autoencoder-cvae_no-out-concat.ipynb](./autoencoder-cvae_no-out-concat.ipynb)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Imports"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import time\n",
    "import numpy as np\n",
    "import torch\n",
    "import torch.nn.functional as F\n",
    "from torch.utils.data import DataLoader\n",
    "from torchvision import datasets\n",
    "from torchvision import transforms\n",
    "\n",
    "\n",
    "if torch.cuda.is_available():\n",
    "    torch.backends.cudnn.deterministic = True"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Device: cuda:1\n",
      "Image batch dimensions: torch.Size([128, 1, 28, 28])\n",
      "Image label dimensions: torch.Size([128])\n"
     ]
    }
   ],
   "source": [
    "##########################\n",
    "### SETTINGS\n",
    "##########################\n",
    "\n",
    "# Device\n",
    "device = torch.device(\"cuda:1\" if torch.cuda.is_available() else \"cpu\")\n",
    "print('Device:', device)\n",
    "\n",
    "# Hyperparameters\n",
    "random_seed = 0\n",
    "learning_rate = 0.001\n",
    "num_epochs = 50\n",
    "batch_size = 128\n",
    "\n",
    "# Architecture\n",
    "num_classes = 10\n",
    "num_features = 784\n",
    "num_hidden_1 = 500\n",
    "num_latent = 35\n",
    "\n",
    "\n",
    "##########################\n",
    "### MNIST DATASET\n",
    "##########################\n",
    "\n",
    "# Note transforms.ToTensor() scales input images\n",
    "# to 0-1 range\n",
    "train_dataset = datasets.MNIST(root='data', \n",
    "                               train=True, \n",
    "                               transform=transforms.ToTensor(),\n",
    "                               download=True)\n",
    "\n",
    "test_dataset = datasets.MNIST(root='data', \n",
    "                              train=False, \n",
    "                              transform=transforms.ToTensor())\n",
    "\n",
    "\n",
    "train_loader = DataLoader(dataset=train_dataset, \n",
    "                          batch_size=batch_size, \n",
    "                          shuffle=True)\n",
    "\n",
    "test_loader = DataLoader(dataset=test_dataset, \n",
    "                         batch_size=batch_size, \n",
    "                         shuffle=False)\n",
    "\n",
    "# Checking the dataset\n",
    "for images, labels in train_loader:  \n",
    "    print('Image batch dimensions:', images.shape)\n",
    "    print('Image label dimensions:', labels.shape)\n",
    "    break"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "##########################\n",
    "### MODEL\n",
    "##########################\n",
    "\n",
    "\n",
    "def to_onehot(labels, num_classes, device):\n",
    "\n",
    "    labels_onehot = torch.zeros(labels.size()[0], num_classes).to(device)\n",
    "    labels_onehot.scatter_(1, labels.view(-1, 1), 1)\n",
    "\n",
    "    return labels_onehot\n",
    "\n",
    "\n",
    "class ConditionalVariationalAutoencoder(torch.nn.Module):\n",
    "\n",
    "    def __init__(self, num_features, num_hidden_1, num_latent, num_classes):\n",
    "        super(ConditionalVariationalAutoencoder, self).__init__()\n",
    "        \n",
    "        self.num_classes = num_classes\n",
    "        \n",
    "        ### ENCODER\n",
    "        self.hidden_1 = torch.nn.Linear(num_features+num_classes, num_hidden_1)\n",
    "        self.z_mean = torch.nn.Linear(num_hidden_1, num_latent)\n",
    "        # in the original paper (Kingma & Welling 2015, we use\n",
    "        # have a z_mean and z_var, but the problem is that\n",
    "        # the z_var can be negative, which would cause issues\n",
    "        # in the log later. Hence we assume that latent vector\n",
    "        # has a z_mean and z_log_var component, and when we need\n",
    "        # the regular variance or std_dev, we simply use \n",
    "        # an exponential function\n",
    "        self.z_log_var = torch.nn.Linear(num_hidden_1, num_latent)\n",
    "        \n",
    "        \n",
    "        ### DECODER\n",
    "        self.linear_3 = torch.nn.Linear(num_latent+num_classes, num_hidden_1)\n",
    "        self.linear_4 = torch.nn.Linear(num_hidden_1, num_features+num_classes)\n",
    "\n",
    "    def reparameterize(self, z_mu, z_log_var):\n",
    "        # Sample epsilon from standard normal distribution\n",
    "        eps = torch.randn(z_mu.size(0), z_mu.size(1)).to(device)\n",
    "        # note that log(x^2) = 2*log(x); hence divide by 2 to get std_dev\n",
    "        # i.e., std_dev = exp(log(std_dev^2)/2) = exp(log(var)/2)\n",
    "        z = z_mu + eps * torch.exp(z_log_var/2.) \n",
    "        return z\n",
    "        \n",
    "    def encoder(self, features, targets):\n",
    "        ### Add condition\n",
    "        onehot_targets = to_onehot(targets, self.num_classes, device)\n",
    "        x = torch.cat((features, onehot_targets), dim=1)\n",
    "\n",
    "        ### ENCODER\n",
    "        x = self.hidden_1(x)\n",
    "        x = F.leaky_relu(x)\n",
    "        z_mean = self.z_mean(x)\n",
    "        z_log_var = self.z_log_var(x)\n",
    "        encoded = self.reparameterize(z_mean, z_log_var)\n",
    "        return z_mean, z_log_var, encoded\n",
    "    \n",
    "    def decoder(self, encoded, targets):\n",
    "        ### Add condition\n",
    "        onehot_targets = to_onehot(targets, self.num_classes, device)\n",
    "        encoded = torch.cat((encoded, onehot_targets), dim=1)        \n",
    "        \n",
    "        ### DECODER\n",
    "        x = self.linear_3(encoded)\n",
    "        x = F.leaky_relu(x)\n",
    "        x = self.linear_4(x)\n",
    "        decoded = torch.sigmoid(x)\n",
    "        return decoded\n",
    "\n",
    "    def forward(self, features, targets):\n",
    "        \n",
    "        z_mean, z_log_var, encoded = self.encoder(features, targets)\n",
    "        decoded = self.decoder(encoded, targets)\n",
    "        \n",
    "        return z_mean, z_log_var, encoded, decoded\n",
    "\n",
    "    \n",
    "torch.manual_seed(random_seed)\n",
    "model = ConditionalVariationalAutoencoder(num_features,\n",
    "                                          num_hidden_1,\n",
    "                                          num_latent,\n",
    "                                          num_classes)\n",
    "model = model.to(device)\n",
    "    \n",
    "\n",
    "##########################\n",
    "### COST AND OPTIMIZER\n",
    "##########################\n",
    "\n",
    "optimizer = torch.optim.Adam(model.parameters(), lr=learning_rate)  "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Training"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 001/050 | Batch 000/003 | Cost: 71038.5859\n",
      "Epoch: 001/050 | Batch 050/003 | Cost: 27687.3066\n",
      "Epoch: 001/050 | Batch 100/003 | Cost: 22471.4355\n",
      "Epoch: 001/050 | Batch 150/003 | Cost: 20541.7598\n",
      "Epoch: 001/050 | Batch 200/003 | Cost: 19670.0254\n",
      "Epoch: 001/050 | Batch 250/003 | Cost: 18063.1172\n",
      "Epoch: 001/050 | Batch 300/003 | Cost: 18197.8105\n",
      "Epoch: 001/050 | Batch 350/003 | Cost: 17140.0234\n",
      "Epoch: 001/050 | Batch 400/003 | Cost: 17088.2832\n",
      "Epoch: 001/050 | Batch 450/003 | Cost: 16489.5078\n",
      "Time elapsed: 0.12 min\n",
      "Epoch: 002/050 | Batch 000/003 | Cost: 16543.6680\n",
      "Epoch: 002/050 | Batch 050/003 | Cost: 15903.9375\n",
      "Epoch: 002/050 | Batch 100/003 | Cost: 15624.4824\n",
      "Epoch: 002/050 | Batch 150/003 | Cost: 15635.6016\n",
      "Epoch: 002/050 | Batch 200/003 | Cost: 15245.4121\n",
      "Epoch: 002/050 | Batch 250/003 | Cost: 15592.2266\n",
      "Epoch: 002/050 | Batch 300/003 | Cost: 14563.4980\n",
      "Epoch: 002/050 | Batch 350/003 | Cost: 15090.5811\n",
      "Epoch: 002/050 | Batch 400/003 | Cost: 14832.8682\n",
      "Epoch: 002/050 | Batch 450/003 | Cost: 15250.2480\n",
      "Time elapsed: 0.24 min\n",
      "Epoch: 003/050 | Batch 000/003 | Cost: 14894.0859\n",
      "Epoch: 003/050 | Batch 050/003 | Cost: 14885.7168\n",
      "Epoch: 003/050 | Batch 100/003 | Cost: 14998.2500\n",
      "Epoch: 003/050 | Batch 150/003 | Cost: 14456.1309\n",
      "Epoch: 003/050 | Batch 200/003 | Cost: 14737.8740\n",
      "Epoch: 003/050 | Batch 250/003 | Cost: 14265.4639\n",
      "Epoch: 003/050 | Batch 300/003 | Cost: 13826.1016\n",
      "Epoch: 003/050 | Batch 350/003 | Cost: 14193.5059\n",
      "Epoch: 003/050 | Batch 400/003 | Cost: 14308.9688\n",
      "Epoch: 003/050 | Batch 450/003 | Cost: 13530.7305\n",
      "Time elapsed: 0.37 min\n",
      "Epoch: 004/050 | Batch 000/003 | Cost: 14149.7422\n",
      "Epoch: 004/050 | Batch 050/003 | Cost: 14044.5645\n",
      "Epoch: 004/050 | Batch 100/003 | Cost: 13909.8926\n",
      "Epoch: 004/050 | Batch 150/003 | Cost: 14146.3789\n",
      "Epoch: 004/050 | Batch 200/003 | Cost: 13917.0820\n",
      "Epoch: 004/050 | Batch 250/003 | Cost: 13873.8262\n",
      "Epoch: 004/050 | Batch 300/003 | Cost: 13358.3555\n",
      "Epoch: 004/050 | Batch 350/003 | Cost: 13450.4238\n",
      "Epoch: 004/050 | Batch 400/003 | Cost: 13677.4062\n",
      "Epoch: 004/050 | Batch 450/003 | Cost: 14247.6426\n",
      "Time elapsed: 0.49 min\n",
      "Epoch: 005/050 | Batch 000/003 | Cost: 13364.3730\n",
      "Epoch: 005/050 | Batch 050/003 | Cost: 13535.6279\n",
      "Epoch: 005/050 | Batch 100/003 | Cost: 13827.6201\n",
      "Epoch: 005/050 | Batch 150/003 | Cost: 13421.4111\n",
      "Epoch: 005/050 | Batch 200/003 | Cost: 13467.9238\n",
      "Epoch: 005/050 | Batch 250/003 | Cost: 13812.4131\n",
      "Epoch: 005/050 | Batch 300/003 | Cost: 13457.0234\n",
      "Epoch: 005/050 | Batch 350/003 | Cost: 14082.8926\n",
      "Epoch: 005/050 | Batch 400/003 | Cost: 13224.9209\n",
      "Epoch: 005/050 | Batch 450/003 | Cost: 13151.8311\n",
      "Time elapsed: 0.61 min\n",
      "Epoch: 006/050 | Batch 000/003 | Cost: 13850.8398\n",
      "Epoch: 006/050 | Batch 050/003 | Cost: 13386.6289\n",
      "Epoch: 006/050 | Batch 100/003 | Cost: 13522.1650\n",
      "Epoch: 006/050 | Batch 150/003 | Cost: 12865.0898\n",
      "Epoch: 006/050 | Batch 200/003 | Cost: 13949.3652\n",
      "Epoch: 006/050 | Batch 250/003 | Cost: 12964.2607\n",
      "Epoch: 006/050 | Batch 300/003 | Cost: 13692.9707\n",
      "Epoch: 006/050 | Batch 350/003 | Cost: 13319.4219\n",
      "Epoch: 006/050 | Batch 400/003 | Cost: 13278.6582\n",
      "Epoch: 006/050 | Batch 450/003 | Cost: 13224.0107\n",
      "Time elapsed: 0.73 min\n",
      "Epoch: 007/050 | Batch 000/003 | Cost: 13686.9590\n",
      "Epoch: 007/050 | Batch 050/003 | Cost: 13188.3828\n",
      "Epoch: 007/050 | Batch 100/003 | Cost: 13173.3457\n",
      "Epoch: 007/050 | Batch 150/003 | Cost: 13309.3906\n",
      "Epoch: 007/050 | Batch 200/003 | Cost: 13174.3359\n",
      "Epoch: 007/050 | Batch 250/003 | Cost: 13169.7100\n",
      "Epoch: 007/050 | Batch 300/003 | Cost: 13255.1074\n",
      "Epoch: 007/050 | Batch 350/003 | Cost: 13153.2480\n",
      "Epoch: 007/050 | Batch 400/003 | Cost: 13683.6426\n",
      "Epoch: 007/050 | Batch 450/003 | Cost: 13518.1055\n",
      "Time elapsed: 0.85 min\n",
      "Epoch: 008/050 | Batch 000/003 | Cost: 13531.5840\n",
      "Epoch: 008/050 | Batch 050/003 | Cost: 12898.9746\n",
      "Epoch: 008/050 | Batch 100/003 | Cost: 13434.8193\n",
      "Epoch: 008/050 | Batch 150/003 | Cost: 13045.6172\n",
      "Epoch: 008/050 | Batch 200/003 | Cost: 13175.8867\n",
      "Epoch: 008/050 | Batch 250/003 | Cost: 12952.2139\n",
      "Epoch: 008/050 | Batch 300/003 | Cost: 13100.8184\n",
      "Epoch: 008/050 | Batch 350/003 | Cost: 13419.0410\n",
      "Epoch: 008/050 | Batch 400/003 | Cost: 13768.5234\n",
      "Epoch: 008/050 | Batch 450/003 | Cost: 13300.7402\n",
      "Time elapsed: 0.97 min\n",
      "Epoch: 009/050 | Batch 000/003 | Cost: 13035.2109\n",
      "Epoch: 009/050 | Batch 050/003 | Cost: 13260.9902\n",
      "Epoch: 009/050 | Batch 100/003 | Cost: 13446.3652\n",
      "Epoch: 009/050 | Batch 150/003 | Cost: 13241.1523\n",
      "Epoch: 009/050 | Batch 200/003 | Cost: 13139.6904\n",
      "Epoch: 009/050 | Batch 250/003 | Cost: 13418.0098\n",
      "Epoch: 009/050 | Batch 300/003 | Cost: 12743.2139\n",
      "Epoch: 009/050 | Batch 350/003 | Cost: 13347.6465\n",
      "Epoch: 009/050 | Batch 400/003 | Cost: 13353.1543\n",
      "Epoch: 009/050 | Batch 450/003 | Cost: 13161.7549\n",
      "Time elapsed: 1.09 min\n",
      "Epoch: 010/050 | Batch 000/003 | Cost: 13043.7656\n",
      "Epoch: 010/050 | Batch 050/003 | Cost: 13368.1816\n",
      "Epoch: 010/050 | Batch 100/003 | Cost: 12742.3281\n",
      "Epoch: 010/050 | Batch 150/003 | Cost: 13022.2832\n",
      "Epoch: 010/050 | Batch 200/003 | Cost: 13076.5967\n",
      "Epoch: 010/050 | Batch 250/003 | Cost: 12765.7480\n",
      "Epoch: 010/050 | Batch 300/003 | Cost: 12605.2461\n",
      "Epoch: 010/050 | Batch 350/003 | Cost: 12561.1895\n",
      "Epoch: 010/050 | Batch 400/003 | Cost: 13314.3623\n",
      "Epoch: 010/050 | Batch 450/003 | Cost: 13048.6670\n",
      "Time elapsed: 1.21 min\n",
      "Epoch: 011/050 | Batch 000/003 | Cost: 12769.8984\n",
      "Epoch: 011/050 | Batch 050/003 | Cost: 13002.4824\n",
      "Epoch: 011/050 | Batch 100/003 | Cost: 12989.9756\n",
      "Epoch: 011/050 | Batch 150/003 | Cost: 12345.3877\n",
      "Epoch: 011/050 | Batch 200/003 | Cost: 12599.8975\n",
      "Epoch: 011/050 | Batch 250/003 | Cost: 13375.6543\n",
      "Epoch: 011/050 | Batch 300/003 | Cost: 12829.1621\n",
      "Epoch: 011/050 | Batch 350/003 | Cost: 12245.9316\n",
      "Epoch: 011/050 | Batch 400/003 | Cost: 12745.7324\n",
      "Epoch: 011/050 | Batch 450/003 | Cost: 12833.6787\n",
      "Time elapsed: 1.33 min\n",
      "Epoch: 012/050 | Batch 000/003 | Cost: 13168.7441\n",
      "Epoch: 012/050 | Batch 050/003 | Cost: 12641.6289\n",
      "Epoch: 012/050 | Batch 100/003 | Cost: 12435.3809\n",
      "Epoch: 012/050 | Batch 150/003 | Cost: 12635.2422\n",
      "Epoch: 012/050 | Batch 200/003 | Cost: 12657.0459\n",
      "Epoch: 012/050 | Batch 250/003 | Cost: 12965.5098\n",
      "Epoch: 012/050 | Batch 300/003 | Cost: 13022.1289\n",
      "Epoch: 012/050 | Batch 350/003 | Cost: 13023.3535\n",
      "Epoch: 012/050 | Batch 400/003 | Cost: 12723.5039\n",
      "Epoch: 012/050 | Batch 450/003 | Cost: 12593.6680\n",
      "Time elapsed: 1.45 min\n",
      "Epoch: 013/050 | Batch 000/003 | Cost: 13062.8193\n",
      "Epoch: 013/050 | Batch 050/003 | Cost: 12942.4668\n",
      "Epoch: 013/050 | Batch 100/003 | Cost: 13116.7461\n",
      "Epoch: 013/050 | Batch 150/003 | Cost: 12458.0615\n",
      "Epoch: 013/050 | Batch 200/003 | Cost: 12586.8535\n",
      "Epoch: 013/050 | Batch 250/003 | Cost: 12546.0703\n",
      "Epoch: 013/050 | Batch 300/003 | Cost: 12817.3428\n",
      "Epoch: 013/050 | Batch 350/003 | Cost: 13081.0586\n",
      "Epoch: 013/050 | Batch 400/003 | Cost: 13006.0645\n",
      "Epoch: 013/050 | Batch 450/003 | Cost: 12553.9902\n",
      "Time elapsed: 1.57 min\n",
      "Epoch: 014/050 | Batch 000/003 | Cost: 12912.1406\n",
      "Epoch: 014/050 | Batch 050/003 | Cost: 12546.7812\n",
      "Epoch: 014/050 | Batch 100/003 | Cost: 12928.7334\n",
      "Epoch: 014/050 | Batch 150/003 | Cost: 12532.9268\n",
      "Epoch: 014/050 | Batch 200/003 | Cost: 12385.5430\n",
      "Epoch: 014/050 | Batch 250/003 | Cost: 12737.9053\n",
      "Epoch: 014/050 | Batch 300/003 | Cost: 12179.8184\n",
      "Epoch: 014/050 | Batch 350/003 | Cost: 12855.8301\n",
      "Epoch: 014/050 | Batch 400/003 | Cost: 12984.9512\n",
      "Epoch: 014/050 | Batch 450/003 | Cost: 12996.2832\n",
      "Time elapsed: 1.69 min\n",
      "Epoch: 015/050 | Batch 000/003 | Cost: 12615.2100\n",
      "Epoch: 015/050 | Batch 050/003 | Cost: 13215.7402\n",
      "Epoch: 015/050 | Batch 100/003 | Cost: 12532.8447\n",
      "Epoch: 015/050 | Batch 150/003 | Cost: 12863.5928\n",
      "Epoch: 015/050 | Batch 200/003 | Cost: 12683.9209\n",
      "Epoch: 015/050 | Batch 250/003 | Cost: 12564.1309\n",
      "Epoch: 015/050 | Batch 300/003 | Cost: 12535.2500\n",
      "Epoch: 015/050 | Batch 350/003 | Cost: 12853.1445\n",
      "Epoch: 015/050 | Batch 400/003 | Cost: 12600.9902\n",
      "Epoch: 015/050 | Batch 450/003 | Cost: 12867.0781\n",
      "Time elapsed: 1.81 min\n",
      "Epoch: 016/050 | Batch 000/003 | Cost: 12429.7402\n",
      "Epoch: 016/050 | Batch 050/003 | Cost: 13151.1377\n",
      "Epoch: 016/050 | Batch 100/003 | Cost: 12885.5371\n",
      "Epoch: 016/050 | Batch 150/003 | Cost: 12601.3242\n",
      "Epoch: 016/050 | Batch 200/003 | Cost: 13196.4834\n",
      "Epoch: 016/050 | Batch 250/003 | Cost: 12570.6836\n",
      "Epoch: 016/050 | Batch 300/003 | Cost: 12942.7861\n",
      "Epoch: 016/050 | Batch 350/003 | Cost: 12389.7363\n",
      "Epoch: 016/050 | Batch 400/003 | Cost: 12576.1445\n",
      "Epoch: 016/050 | Batch 450/003 | Cost: 12140.7900\n",
      "Time elapsed: 1.93 min\n",
      "Epoch: 017/050 | Batch 000/003 | Cost: 12978.2227\n",
      "Epoch: 017/050 | Batch 050/003 | Cost: 12447.1230\n",
      "Epoch: 017/050 | Batch 100/003 | Cost: 12980.0459\n",
      "Epoch: 017/050 | Batch 150/003 | Cost: 12901.1045\n",
      "Epoch: 017/050 | Batch 200/003 | Cost: 12381.2070\n",
      "Epoch: 017/050 | Batch 250/003 | Cost: 12956.8857\n",
      "Epoch: 017/050 | Batch 300/003 | Cost: 12341.9512\n",
      "Epoch: 017/050 | Batch 350/003 | Cost: 12692.6270\n",
      "Epoch: 017/050 | Batch 400/003 | Cost: 12316.9727\n",
      "Epoch: 017/050 | Batch 450/003 | Cost: 12857.4844\n",
      "Time elapsed: 2.05 min\n",
      "Epoch: 018/050 | Batch 000/003 | Cost: 12531.7217\n",
      "Epoch: 018/050 | Batch 050/003 | Cost: 12500.7012\n",
      "Epoch: 018/050 | Batch 100/003 | Cost: 12458.2969\n",
      "Epoch: 018/050 | Batch 150/003 | Cost: 12838.6758\n",
      "Epoch: 018/050 | Batch 200/003 | Cost: 12678.9072\n",
      "Epoch: 018/050 | Batch 250/003 | Cost: 12199.8320\n",
      "Epoch: 018/050 | Batch 300/003 | Cost: 12352.8457\n",
      "Epoch: 018/050 | Batch 350/003 | Cost: 12980.6797\n",
      "Epoch: 018/050 | Batch 400/003 | Cost: 11996.0254\n",
      "Epoch: 018/050 | Batch 450/003 | Cost: 12993.7158\n",
      "Time elapsed: 2.17 min\n",
      "Epoch: 019/050 | Batch 000/003 | Cost: 12559.5215\n",
      "Epoch: 019/050 | Batch 050/003 | Cost: 12757.8662\n",
      "Epoch: 019/050 | Batch 100/003 | Cost: 13118.6836\n",
      "Epoch: 019/050 | Batch 150/003 | Cost: 13059.1777\n",
      "Epoch: 019/050 | Batch 200/003 | Cost: 13048.2031\n",
      "Epoch: 019/050 | Batch 250/003 | Cost: 12460.9688\n",
      "Epoch: 019/050 | Batch 300/003 | Cost: 12757.1748\n",
      "Epoch: 019/050 | Batch 350/003 | Cost: 12035.1006\n",
      "Epoch: 019/050 | Batch 400/003 | Cost: 12802.9883\n",
      "Epoch: 019/050 | Batch 450/003 | Cost: 12858.0488\n",
      "Time elapsed: 2.29 min\n",
      "Epoch: 020/050 | Batch 000/003 | Cost: 12934.9336\n",
      "Epoch: 020/050 | Batch 050/003 | Cost: 12974.0488\n",
      "Epoch: 020/050 | Batch 100/003 | Cost: 12512.7949\n",
      "Epoch: 020/050 | Batch 150/003 | Cost: 12980.7275\n",
      "Epoch: 020/050 | Batch 200/003 | Cost: 12930.8789\n",
      "Epoch: 020/050 | Batch 250/003 | Cost: 12721.5723\n",
      "Epoch: 020/050 | Batch 300/003 | Cost: 12933.5918\n",
      "Epoch: 020/050 | Batch 350/003 | Cost: 12456.5488\n",
      "Epoch: 020/050 | Batch 400/003 | Cost: 12849.0654\n",
      "Epoch: 020/050 | Batch 450/003 | Cost: 12522.7480\n",
      "Time elapsed: 2.41 min\n",
      "Epoch: 021/050 | Batch 000/003 | Cost: 12122.0742\n",
      "Epoch: 021/050 | Batch 050/003 | Cost: 13007.4697\n",
      "Epoch: 021/050 | Batch 100/003 | Cost: 12690.0635\n",
      "Epoch: 021/050 | Batch 150/003 | Cost: 12353.1621\n",
      "Epoch: 021/050 | Batch 200/003 | Cost: 13007.6445\n",
      "Epoch: 021/050 | Batch 250/003 | Cost: 12202.5176\n",
      "Epoch: 021/050 | Batch 300/003 | Cost: 12154.6660\n",
      "Epoch: 021/050 | Batch 350/003 | Cost: 12723.7158\n",
      "Epoch: 021/050 | Batch 400/003 | Cost: 12902.6582\n",
      "Epoch: 021/050 | Batch 450/003 | Cost: 12786.1484\n",
      "Time elapsed: 2.53 min\n",
      "Epoch: 022/050 | Batch 000/003 | Cost: 12648.4844\n",
      "Epoch: 022/050 | Batch 050/003 | Cost: 12816.2891\n",
      "Epoch: 022/050 | Batch 100/003 | Cost: 12544.2412\n",
      "Epoch: 022/050 | Batch 150/003 | Cost: 12651.0215\n",
      "Epoch: 022/050 | Batch 200/003 | Cost: 12831.6562\n",
      "Epoch: 022/050 | Batch 250/003 | Cost: 12590.9326\n",
      "Epoch: 022/050 | Batch 300/003 | Cost: 12396.2373\n",
      "Epoch: 022/050 | Batch 350/003 | Cost: 12948.6094\n",
      "Epoch: 022/050 | Batch 400/003 | Cost: 12553.6816\n",
      "Epoch: 022/050 | Batch 450/003 | Cost: 12309.2637\n",
      "Time elapsed: 2.65 min\n",
      "Epoch: 023/050 | Batch 000/003 | Cost: 12857.9453\n",
      "Epoch: 023/050 | Batch 050/003 | Cost: 12910.1377\n",
      "Epoch: 023/050 | Batch 100/003 | Cost: 12449.3242\n",
      "Epoch: 023/050 | Batch 150/003 | Cost: 12278.5312\n",
      "Epoch: 023/050 | Batch 200/003 | Cost: 12971.6885\n",
      "Epoch: 023/050 | Batch 250/003 | Cost: 13084.1699\n",
      "Epoch: 023/050 | Batch 300/003 | Cost: 12463.8232\n",
      "Epoch: 023/050 | Batch 350/003 | Cost: 12589.3398\n",
      "Epoch: 023/050 | Batch 400/003 | Cost: 12732.2168\n",
      "Epoch: 023/050 | Batch 450/003 | Cost: 12196.4492\n",
      "Time elapsed: 2.76 min\n",
      "Epoch: 024/050 | Batch 000/003 | Cost: 12342.8789\n",
      "Epoch: 024/050 | Batch 050/003 | Cost: 12255.4883\n",
      "Epoch: 024/050 | Batch 100/003 | Cost: 12158.4902\n",
      "Epoch: 024/050 | Batch 150/003 | Cost: 12731.5742\n",
      "Epoch: 024/050 | Batch 200/003 | Cost: 12789.7168\n",
      "Epoch: 024/050 | Batch 250/003 | Cost: 12213.1104\n",
      "Epoch: 024/050 | Batch 300/003 | Cost: 12613.8281\n",
      "Epoch: 024/050 | Batch 350/003 | Cost: 12530.3096\n",
      "Epoch: 024/050 | Batch 400/003 | Cost: 12475.6035\n",
      "Epoch: 024/050 | Batch 450/003 | Cost: 12182.7178\n",
      "Time elapsed: 2.88 min\n",
      "Epoch: 025/050 | Batch 000/003 | Cost: 12929.5430\n",
      "Epoch: 025/050 | Batch 050/003 | Cost: 12472.9180\n",
      "Epoch: 025/050 | Batch 100/003 | Cost: 11870.2754\n",
      "Epoch: 025/050 | Batch 150/003 | Cost: 12619.1641\n",
      "Epoch: 025/050 | Batch 200/003 | Cost: 12285.2344\n",
      "Epoch: 025/050 | Batch 250/003 | Cost: 12557.6367\n",
      "Epoch: 025/050 | Batch 300/003 | Cost: 12409.3574\n",
      "Epoch: 025/050 | Batch 350/003 | Cost: 12889.7910\n",
      "Epoch: 025/050 | Batch 400/003 | Cost: 12708.5605\n",
      "Epoch: 025/050 | Batch 450/003 | Cost: 12577.1514\n",
      "Time elapsed: 3.00 min\n",
      "Epoch: 026/050 | Batch 000/003 | Cost: 12301.7139\n",
      "Epoch: 026/050 | Batch 050/003 | Cost: 12692.7188\n",
      "Epoch: 026/050 | Batch 100/003 | Cost: 12601.7607\n",
      "Epoch: 026/050 | Batch 150/003 | Cost: 12460.5254\n",
      "Epoch: 026/050 | Batch 200/003 | Cost: 12769.4287\n",
      "Epoch: 026/050 | Batch 250/003 | Cost: 12428.0000\n",
      "Epoch: 026/050 | Batch 300/003 | Cost: 12987.5449\n",
      "Epoch: 026/050 | Batch 350/003 | Cost: 12646.5908\n",
      "Epoch: 026/050 | Batch 400/003 | Cost: 12335.6738\n",
      "Epoch: 026/050 | Batch 450/003 | Cost: 12613.5449\n",
      "Time elapsed: 3.12 min\n",
      "Epoch: 027/050 | Batch 000/003 | Cost: 12647.8809\n",
      "Epoch: 027/050 | Batch 050/003 | Cost: 12970.0127\n",
      "Epoch: 027/050 | Batch 100/003 | Cost: 12870.9219\n",
      "Epoch: 027/050 | Batch 150/003 | Cost: 12435.1553\n",
      "Epoch: 027/050 | Batch 200/003 | Cost: 12810.8418\n",
      "Epoch: 027/050 | Batch 250/003 | Cost: 12727.6777\n",
      "Epoch: 027/050 | Batch 300/003 | Cost: 12762.6055\n",
      "Epoch: 027/050 | Batch 350/003 | Cost: 12970.4414\n",
      "Epoch: 027/050 | Batch 400/003 | Cost: 12745.8652\n",
      "Epoch: 027/050 | Batch 450/003 | Cost: 12442.3232\n",
      "Time elapsed: 3.24 min\n",
      "Epoch: 028/050 | Batch 000/003 | Cost: 12199.5078\n",
      "Epoch: 028/050 | Batch 050/003 | Cost: 12707.5625\n",
      "Epoch: 028/050 | Batch 100/003 | Cost: 12289.9277\n",
      "Epoch: 028/050 | Batch 150/003 | Cost: 12375.3242\n",
      "Epoch: 028/050 | Batch 200/003 | Cost: 12023.3887\n",
      "Epoch: 028/050 | Batch 250/003 | Cost: 12776.7168\n",
      "Epoch: 028/050 | Batch 300/003 | Cost: 12680.4668\n",
      "Epoch: 028/050 | Batch 350/003 | Cost: 12701.3281\n",
      "Epoch: 028/050 | Batch 400/003 | Cost: 12561.7227\n",
      "Epoch: 028/050 | Batch 450/003 | Cost: 12763.8447\n",
      "Time elapsed: 3.36 min\n",
      "Epoch: 029/050 | Batch 000/003 | Cost: 12721.6777\n",
      "Epoch: 029/050 | Batch 050/003 | Cost: 12443.0645\n",
      "Epoch: 029/050 | Batch 100/003 | Cost: 12057.7822\n",
      "Epoch: 029/050 | Batch 150/003 | Cost: 12504.2529\n",
      "Epoch: 029/050 | Batch 200/003 | Cost: 12310.3965\n",
      "Epoch: 029/050 | Batch 250/003 | Cost: 13202.6211\n",
      "Epoch: 029/050 | Batch 300/003 | Cost: 12117.8008\n",
      "Epoch: 029/050 | Batch 350/003 | Cost: 12538.9092\n",
      "Epoch: 029/050 | Batch 400/003 | Cost: 12451.9180\n",
      "Epoch: 029/050 | Batch 450/003 | Cost: 12649.5537\n",
      "Time elapsed: 3.48 min\n",
      "Epoch: 030/050 | Batch 000/003 | Cost: 13177.7520\n",
      "Epoch: 030/050 | Batch 050/003 | Cost: 12634.2002\n",
      "Epoch: 030/050 | Batch 100/003 | Cost: 12582.4863\n",
      "Epoch: 030/050 | Batch 150/003 | Cost: 12516.8877\n",
      "Epoch: 030/050 | Batch 200/003 | Cost: 12460.7139\n",
      "Epoch: 030/050 | Batch 250/003 | Cost: 12385.2090\n",
      "Epoch: 030/050 | Batch 300/003 | Cost: 12847.1113\n",
      "Epoch: 030/050 | Batch 350/003 | Cost: 12123.1543\n",
      "Epoch: 030/050 | Batch 400/003 | Cost: 12427.7227\n",
      "Epoch: 030/050 | Batch 450/003 | Cost: 12904.1279\n",
      "Time elapsed: 3.60 min\n",
      "Epoch: 031/050 | Batch 000/003 | Cost: 12551.2178\n",
      "Epoch: 031/050 | Batch 050/003 | Cost: 13006.6875\n",
      "Epoch: 031/050 | Batch 100/003 | Cost: 12672.4551\n",
      "Epoch: 031/050 | Batch 150/003 | Cost: 12577.4131\n",
      "Epoch: 031/050 | Batch 200/003 | Cost: 12595.9150\n",
      "Epoch: 031/050 | Batch 250/003 | Cost: 12294.5635\n",
      "Epoch: 031/050 | Batch 300/003 | Cost: 12491.6406\n",
      "Epoch: 031/050 | Batch 350/003 | Cost: 12726.5947\n",
      "Epoch: 031/050 | Batch 400/003 | Cost: 12449.7246\n",
      "Epoch: 031/050 | Batch 450/003 | Cost: 12771.0234\n",
      "Time elapsed: 3.72 min\n",
      "Epoch: 032/050 | Batch 000/003 | Cost: 12567.2988\n",
      "Epoch: 032/050 | Batch 050/003 | Cost: 11960.7676\n",
      "Epoch: 032/050 | Batch 100/003 | Cost: 12276.4648\n",
      "Epoch: 032/050 | Batch 150/003 | Cost: 13205.2402\n",
      "Epoch: 032/050 | Batch 200/003 | Cost: 12931.1514\n",
      "Epoch: 032/050 | Batch 250/003 | Cost: 12975.4473\n",
      "Epoch: 032/050 | Batch 300/003 | Cost: 12364.8164\n",
      "Epoch: 032/050 | Batch 350/003 | Cost: 13167.5020\n",
      "Epoch: 032/050 | Batch 400/003 | Cost: 12439.9355\n",
      "Epoch: 032/050 | Batch 450/003 | Cost: 12526.5000\n",
      "Time elapsed: 3.84 min\n",
      "Epoch: 033/050 | Batch 000/003 | Cost: 12447.2412\n",
      "Epoch: 033/050 | Batch 050/003 | Cost: 12603.1895\n",
      "Epoch: 033/050 | Batch 100/003 | Cost: 11774.2539\n",
      "Epoch: 033/050 | Batch 150/003 | Cost: 12859.1406\n",
      "Epoch: 033/050 | Batch 200/003 | Cost: 12321.5195\n",
      "Epoch: 033/050 | Batch 250/003 | Cost: 12458.5352\n",
      "Epoch: 033/050 | Batch 300/003 | Cost: 12871.9336\n",
      "Epoch: 033/050 | Batch 350/003 | Cost: 12373.0039\n",
      "Epoch: 033/050 | Batch 400/003 | Cost: 12674.4531\n",
      "Epoch: 033/050 | Batch 450/003 | Cost: 12425.8633\n",
      "Time elapsed: 3.96 min\n",
      "Epoch: 034/050 | Batch 000/003 | Cost: 12650.1582\n",
      "Epoch: 034/050 | Batch 050/003 | Cost: 12587.3613\n",
      "Epoch: 034/050 | Batch 100/003 | Cost: 12675.3105\n",
      "Epoch: 034/050 | Batch 150/003 | Cost: 12833.5391\n",
      "Epoch: 034/050 | Batch 200/003 | Cost: 12441.7305\n",
      "Epoch: 034/050 | Batch 250/003 | Cost: 12733.2959\n",
      "Epoch: 034/050 | Batch 300/003 | Cost: 12329.9219\n",
      "Epoch: 034/050 | Batch 350/003 | Cost: 12802.7354\n",
      "Epoch: 034/050 | Batch 400/003 | Cost: 11619.9902\n",
      "Epoch: 034/050 | Batch 450/003 | Cost: 12474.8330\n",
      "Time elapsed: 4.08 min\n",
      "Epoch: 035/050 | Batch 000/003 | Cost: 12535.9199\n",
      "Epoch: 035/050 | Batch 050/003 | Cost: 12450.3691\n",
      "Epoch: 035/050 | Batch 100/003 | Cost: 12693.5137\n",
      "Epoch: 035/050 | Batch 150/003 | Cost: 12554.5850\n",
      "Epoch: 035/050 | Batch 200/003 | Cost: 12123.2129\n",
      "Epoch: 035/050 | Batch 250/003 | Cost: 12241.1787\n",
      "Epoch: 035/050 | Batch 300/003 | Cost: 12227.1240\n",
      "Epoch: 035/050 | Batch 350/003 | Cost: 12536.8457\n",
      "Epoch: 035/050 | Batch 400/003 | Cost: 12318.9238\n",
      "Epoch: 035/050 | Batch 450/003 | Cost: 12698.3252\n",
      "Time elapsed: 4.20 min\n",
      "Epoch: 036/050 | Batch 000/003 | Cost: 12412.0586\n",
      "Epoch: 036/050 | Batch 050/003 | Cost: 12438.2656\n",
      "Epoch: 036/050 | Batch 100/003 | Cost: 12465.1973\n",
      "Epoch: 036/050 | Batch 150/003 | Cost: 12164.7285\n",
      "Epoch: 036/050 | Batch 200/003 | Cost: 12492.0488\n",
      "Epoch: 036/050 | Batch 250/003 | Cost: 12558.4023\n",
      "Epoch: 036/050 | Batch 300/003 | Cost: 12648.7227\n",
      "Epoch: 036/050 | Batch 350/003 | Cost: 12408.2832\n",
      "Epoch: 036/050 | Batch 400/003 | Cost: 12169.1201\n",
      "Epoch: 036/050 | Batch 450/003 | Cost: 12748.4707\n",
      "Time elapsed: 4.32 min\n",
      "Epoch: 037/050 | Batch 000/003 | Cost: 12361.0439\n",
      "Epoch: 037/050 | Batch 050/003 | Cost: 12553.2051\n",
      "Epoch: 037/050 | Batch 100/003 | Cost: 12548.9307\n",
      "Epoch: 037/050 | Batch 150/003 | Cost: 12064.2344\n",
      "Epoch: 037/050 | Batch 200/003 | Cost: 12219.1270\n",
      "Epoch: 037/050 | Batch 250/003 | Cost: 12353.5186\n",
      "Epoch: 037/050 | Batch 300/003 | Cost: 12224.3682\n",
      "Epoch: 037/050 | Batch 350/003 | Cost: 12668.8193\n",
      "Epoch: 037/050 | Batch 400/003 | Cost: 12274.8691\n",
      "Epoch: 037/050 | Batch 450/003 | Cost: 12393.6182\n",
      "Time elapsed: 4.44 min\n",
      "Epoch: 038/050 | Batch 000/003 | Cost: 12669.8281\n",
      "Epoch: 038/050 | Batch 050/003 | Cost: 12271.3066\n",
      "Epoch: 038/050 | Batch 100/003 | Cost: 12387.7930\n",
      "Epoch: 038/050 | Batch 150/003 | Cost: 11961.1123\n",
      "Epoch: 038/050 | Batch 200/003 | Cost: 11976.5498\n",
      "Epoch: 038/050 | Batch 250/003 | Cost: 12573.2324\n",
      "Epoch: 038/050 | Batch 300/003 | Cost: 12608.4854\n",
      "Epoch: 038/050 | Batch 350/003 | Cost: 12112.7617\n",
      "Epoch: 038/050 | Batch 400/003 | Cost: 12275.8418\n",
      "Epoch: 038/050 | Batch 450/003 | Cost: 12417.7549\n",
      "Time elapsed: 4.56 min\n",
      "Epoch: 039/050 | Batch 000/003 | Cost: 12874.1016\n",
      "Epoch: 039/050 | Batch 050/003 | Cost: 12372.2070\n",
      "Epoch: 039/050 | Batch 100/003 | Cost: 12446.2695\n",
      "Epoch: 039/050 | Batch 150/003 | Cost: 13140.2764\n",
      "Epoch: 039/050 | Batch 200/003 | Cost: 12825.3037\n",
      "Epoch: 039/050 | Batch 250/003 | Cost: 12165.7451\n",
      "Epoch: 039/050 | Batch 300/003 | Cost: 12430.3340\n",
      "Epoch: 039/050 | Batch 350/003 | Cost: 12702.8613\n",
      "Epoch: 039/050 | Batch 400/003 | Cost: 12374.5752\n",
      "Epoch: 039/050 | Batch 450/003 | Cost: 12414.6475\n",
      "Time elapsed: 4.68 min\n",
      "Epoch: 040/050 | Batch 000/003 | Cost: 12147.0693\n",
      "Epoch: 040/050 | Batch 050/003 | Cost: 12907.0684\n",
      "Epoch: 040/050 | Batch 100/003 | Cost: 11664.0801\n",
      "Epoch: 040/050 | Batch 150/003 | Cost: 12443.9512\n",
      "Epoch: 040/050 | Batch 200/003 | Cost: 12112.6250\n",
      "Epoch: 040/050 | Batch 250/003 | Cost: 12146.6133\n",
      "Epoch: 040/050 | Batch 300/003 | Cost: 12050.8281\n",
      "Epoch: 040/050 | Batch 350/003 | Cost: 12762.5020\n",
      "Epoch: 040/050 | Batch 400/003 | Cost: 12517.0771\n",
      "Epoch: 040/050 | Batch 450/003 | Cost: 12191.8916\n",
      "Time elapsed: 4.80 min\n",
      "Epoch: 041/050 | Batch 000/003 | Cost: 12098.7090\n",
      "Epoch: 041/050 | Batch 050/003 | Cost: 12562.2539\n",
      "Epoch: 041/050 | Batch 100/003 | Cost: 12609.0088\n",
      "Epoch: 041/050 | Batch 150/003 | Cost: 12270.9854\n",
      "Epoch: 041/050 | Batch 200/003 | Cost: 12757.7578\n",
      "Epoch: 041/050 | Batch 250/003 | Cost: 12277.8584\n",
      "Epoch: 041/050 | Batch 300/003 | Cost: 12219.4121\n",
      "Epoch: 041/050 | Batch 350/003 | Cost: 12215.5977\n",
      "Epoch: 041/050 | Batch 400/003 | Cost: 12476.9668\n",
      "Epoch: 041/050 | Batch 450/003 | Cost: 12220.5449\n",
      "Time elapsed: 4.92 min\n",
      "Epoch: 042/050 | Batch 000/003 | Cost: 12391.3916\n",
      "Epoch: 042/050 | Batch 050/003 | Cost: 12526.2002\n",
      "Epoch: 042/050 | Batch 100/003 | Cost: 12929.2305\n",
      "Epoch: 042/050 | Batch 150/003 | Cost: 12575.8652\n",
      "Epoch: 042/050 | Batch 200/003 | Cost: 12588.2656\n",
      "Epoch: 042/050 | Batch 250/003 | Cost: 12191.2520\n",
      "Epoch: 042/050 | Batch 300/003 | Cost: 12416.6172\n",
      "Epoch: 042/050 | Batch 350/003 | Cost: 12398.3096\n",
      "Epoch: 042/050 | Batch 400/003 | Cost: 12093.6777\n",
      "Epoch: 042/050 | Batch 450/003 | Cost: 12391.6504\n",
      "Time elapsed: 5.04 min\n",
      "Epoch: 043/050 | Batch 000/003 | Cost: 12748.3145\n",
      "Epoch: 043/050 | Batch 050/003 | Cost: 12076.2344\n",
      "Epoch: 043/050 | Batch 100/003 | Cost: 11953.4248\n",
      "Epoch: 043/050 | Batch 150/003 | Cost: 12420.9707\n",
      "Epoch: 043/050 | Batch 200/003 | Cost: 12428.2041\n",
      "Epoch: 043/050 | Batch 250/003 | Cost: 12447.2324\n",
      "Epoch: 043/050 | Batch 300/003 | Cost: 12404.4004\n",
      "Epoch: 043/050 | Batch 350/003 | Cost: 13077.8926\n",
      "Epoch: 043/050 | Batch 400/003 | Cost: 13071.2891\n",
      "Epoch: 043/050 | Batch 450/003 | Cost: 12398.8311\n",
      "Time elapsed: 5.16 min\n",
      "Epoch: 044/050 | Batch 000/003 | Cost: 12913.1631\n",
      "Epoch: 044/050 | Batch 050/003 | Cost: 12169.1523\n",
      "Epoch: 044/050 | Batch 100/003 | Cost: 11856.3672\n",
      "Epoch: 044/050 | Batch 150/003 | Cost: 12280.6045\n",
      "Epoch: 044/050 | Batch 200/003 | Cost: 12343.7998\n",
      "Epoch: 044/050 | Batch 250/003 | Cost: 12746.3164\n",
      "Epoch: 044/050 | Batch 300/003 | Cost: 12279.5156\n",
      "Epoch: 044/050 | Batch 350/003 | Cost: 12548.7598\n",
      "Epoch: 044/050 | Batch 400/003 | Cost: 12430.6104\n",
      "Epoch: 044/050 | Batch 450/003 | Cost: 12775.3105\n",
      "Time elapsed: 5.28 min\n",
      "Epoch: 045/050 | Batch 000/003 | Cost: 12245.9482\n",
      "Epoch: 045/050 | Batch 050/003 | Cost: 12547.1270\n",
      "Epoch: 045/050 | Batch 100/003 | Cost: 12214.5732\n",
      "Epoch: 045/050 | Batch 150/003 | Cost: 12484.7715\n",
      "Epoch: 045/050 | Batch 200/003 | Cost: 12552.6123\n",
      "Epoch: 045/050 | Batch 250/003 | Cost: 12510.6064\n",
      "Epoch: 045/050 | Batch 300/003 | Cost: 12465.5566\n",
      "Epoch: 045/050 | Batch 350/003 | Cost: 12111.4629\n",
      "Epoch: 045/050 | Batch 400/003 | Cost: 12435.2578\n",
      "Epoch: 045/050 | Batch 450/003 | Cost: 12433.7461\n",
      "Time elapsed: 5.40 min\n",
      "Epoch: 046/050 | Batch 000/003 | Cost: 12598.7734\n",
      "Epoch: 046/050 | Batch 050/003 | Cost: 12568.2207\n",
      "Epoch: 046/050 | Batch 100/003 | Cost: 12853.6328\n",
      "Epoch: 046/050 | Batch 150/003 | Cost: 12230.1533\n",
      "Epoch: 046/050 | Batch 200/003 | Cost: 12326.4727\n",
      "Epoch: 046/050 | Batch 250/003 | Cost: 12770.4814\n",
      "Epoch: 046/050 | Batch 300/003 | Cost: 12082.1006\n",
      "Epoch: 046/050 | Batch 350/003 | Cost: 11948.0430\n",
      "Epoch: 046/050 | Batch 400/003 | Cost: 12462.7773\n",
      "Epoch: 046/050 | Batch 450/003 | Cost: 12145.4609\n",
      "Time elapsed: 5.52 min\n",
      "Epoch: 047/050 | Batch 000/003 | Cost: 12146.9893\n",
      "Epoch: 047/050 | Batch 050/003 | Cost: 11917.3779\n",
      "Epoch: 047/050 | Batch 100/003 | Cost: 12135.3457\n",
      "Epoch: 047/050 | Batch 150/003 | Cost: 11984.8691\n",
      "Epoch: 047/050 | Batch 200/003 | Cost: 12437.4248\n",
      "Epoch: 047/050 | Batch 250/003 | Cost: 12444.1416\n",
      "Epoch: 047/050 | Batch 300/003 | Cost: 12078.9043\n",
      "Epoch: 047/050 | Batch 350/003 | Cost: 12138.3818\n",
      "Epoch: 047/050 | Batch 400/003 | Cost: 12556.3086\n",
      "Epoch: 047/050 | Batch 450/003 | Cost: 12726.3828\n",
      "Time elapsed: 5.64 min\n",
      "Epoch: 048/050 | Batch 000/003 | Cost: 12927.1035\n",
      "Epoch: 048/050 | Batch 050/003 | Cost: 12747.8994\n",
      "Epoch: 048/050 | Batch 100/003 | Cost: 12002.6406\n",
      "Epoch: 048/050 | Batch 150/003 | Cost: 12093.2988\n",
      "Epoch: 048/050 | Batch 200/003 | Cost: 11541.1982\n",
      "Epoch: 048/050 | Batch 250/003 | Cost: 12530.8398\n",
      "Epoch: 048/050 | Batch 300/003 | Cost: 12200.4463\n",
      "Epoch: 048/050 | Batch 350/003 | Cost: 12818.4082\n",
      "Epoch: 048/050 | Batch 400/003 | Cost: 12760.9844\n",
      "Epoch: 048/050 | Batch 450/003 | Cost: 12186.3496\n",
      "Time elapsed: 5.76 min\n",
      "Epoch: 049/050 | Batch 000/003 | Cost: 12394.8848\n",
      "Epoch: 049/050 | Batch 050/003 | Cost: 12406.0801\n",
      "Epoch: 049/050 | Batch 100/003 | Cost: 12390.3223\n",
      "Epoch: 049/050 | Batch 150/003 | Cost: 12788.7949\n",
      "Epoch: 049/050 | Batch 200/003 | Cost: 12015.3936\n",
      "Epoch: 049/050 | Batch 250/003 | Cost: 12259.9609\n",
      "Epoch: 049/050 | Batch 300/003 | Cost: 12216.9688\n",
      "Epoch: 049/050 | Batch 350/003 | Cost: 12795.6113\n",
      "Epoch: 049/050 | Batch 400/003 | Cost: 11885.8955\n",
      "Epoch: 049/050 | Batch 450/003 | Cost: 12445.2891\n",
      "Time elapsed: 5.88 min\n",
      "Epoch: 050/050 | Batch 000/003 | Cost: 12782.9785\n",
      "Epoch: 050/050 | Batch 050/003 | Cost: 12291.9814\n",
      "Epoch: 050/050 | Batch 100/003 | Cost: 12721.1641\n",
      "Epoch: 050/050 | Batch 150/003 | Cost: 12482.5762\n",
      "Epoch: 050/050 | Batch 200/003 | Cost: 12581.8125\n",
      "Epoch: 050/050 | Batch 250/003 | Cost: 12422.5527\n",
      "Epoch: 050/050 | Batch 300/003 | Cost: 12384.3047\n",
      "Epoch: 050/050 | Batch 350/003 | Cost: 12031.4541\n",
      "Epoch: 050/050 | Batch 400/003 | Cost: 12278.7617\n",
      "Epoch: 050/050 | Batch 450/003 | Cost: 12190.8232\n",
      "Time elapsed: 6.00 min\n",
      "Total Training Time: 6.00 min\n"
     ]
    }
   ],
   "source": [
    "start_time = time.time()\n",
    "for epoch in range(num_epochs):\n",
    "    for batch_idx, (features, targets) in enumerate(train_loader):\n",
    "        \n",
    "        features = features.view(-1, 28*28).to(device)\n",
    "        targets = targets.to(device)\n",
    "\n",
    "        ### FORWARD AND BACK PROP\n",
    "        z_mean, z_log_var, encoded, decoded = model(features, targets)\n",
    "\n",
    "        # cost = reconstruction loss + Kullback-Leibler divergence\n",
    "        kl_divergence = (0.5 * (z_mean**2 + \n",
    "                                torch.exp(z_log_var) - z_log_var - 1)).sum()\n",
    "        \n",
    "        # add condition\n",
    "        x_con = torch.cat((features, to_onehot(targets, num_classes, device)), dim=1)\n",
    "        \n",
    "        pixelwise_bce = F.binary_cross_entropy(decoded, x_con, reduction='sum')\n",
    "        cost = kl_divergence + pixelwise_bce\n",
    "        \n",
    "        optimizer.zero_grad()\n",
    "        cost.backward()\n",
    "        \n",
    "        ### UPDATE MODEL PARAMETERS\n",
    "        optimizer.step()\n",
    "        \n",
    "        ### LOGGING\n",
    "        if not batch_idx % 50:\n",
    "            print ('Epoch: %03d/%03d | Batch %03d/%03d | Cost: %.4f' \n",
    "                   %(epoch+1, num_epochs, batch_idx, \n",
    "                     len(train_loader)//batch_size, cost))\n",
    "        \n",
    "    print('Time elapsed: %.2f min' % ((time.time() - start_time)/60))\n",
    "    \n",
    "print('Total Training Time: %.2f min' % ((time.time() - start_time)/60))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Evaluation"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Reconstruction"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABIAAAACqCAYAAADV0DQZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzsnXeAG9X1tp8JLYTwJRA6AUzoHYND7733zo9qOgRCCx0CoffQMQSMKcEEDBgw1fSOgVBtIIQS03sPIWG+P+x37tWsdj3alVYa7fv8s9rRSJo5uk33vOecJE1TjDHGGGOMMcYYY0z78pNmX4AxxhhjjDHGGGOMaSzeADLGGGOMMcYYY4xpc7wBZIwxxhhjjDHGGNPmeAPIGGOMMcYYY4wxps3xBpAxxhhjjDHGGGNMm+MNIGOMMcYYY4wxxpg2xxtAxhhjjDHGGGOMMW1OjzaAkiRZK0mSV5Ik+UeSJIfW66KMMcYYY4wxxhhjTP1I0jTt3guTZCLgVWB1YCzwFLB1mqYv1+/yjDHGGGOMMcYYY0xPmbgHr10C+Eeapv8ESJLkWmBDoNMNoGmmmSbt169fDz6ynDz99NMfp2k6bS2vsa2KY1vVRl+015tvvsnHH3+c1Pq6vmgrcD+sBduqOLZVcTy+F8fje224HxbHtiqOx6zieMyqDffD4hS1VU82gGYG/hX9PxZYMn9SkiS7AbsBzDrrrIwaNaoHH1lOkiR5q+B5tpVtVZiithp/bp+214ABAwqf29dtBe6HtWBbFce2Ko7H9+J4fK8N98Pi2FbF8ZhVHI9ZteF+WJyitmp4Eug0TQelaTogTdMB005b88Zwn8K2Ko5tVRu2V3Fsq+LYVsWxrYpjW9WG7VUc26o4tlVxbKvasL2KY1sVx7YqTk82gN4BZon+//X4Y8YYY4wxxhhjjDGmhehJCNhTwFxJkszOuI2frYBt6nJVxhhjjDEtigpo7LLLLgBcdtllAMw222wAPPTQQ9m5s8wyC8YYY4wxrUC3N4DSNP1vkiT7AHcCEwGXpWn6Ut2uzBhjjDHGGGOMMcbUhZ4ogEjTdAQwok7XYowxxhhjjDHGGGMaQI82gIwxxhhj+gKff/559vi6664D4PLLLwcgScZV9H377bcBeP/997NzHQJmjDHGmFah4VXAjDHGGGOMMcYYY0xzsQLIGGOMaQP+97//AfDyyy9nx6688sqKcy688EIAvv76awB23XXX7LlBgwY1+hJLyccffwzABhtskB17/PHHK86ZYoopAPjjH/8IwJxzztk7F9dC/PjjjwD88MMPAPzkJ8HHOMkkkzTlmowpO1dccQUAN9xwAwC33HJLh3OWW245AI477jgAVl555V66OmNMGbECyBhjjDHGGGOMMabNaSsF0Pfff589/vOf/wzA7bffDsCYMWMAeO+993r/wtqQd955B4Bjjz0WCB6J5557Ljtnuumm6/0LMy3Fd999B8CJJ54IwAcffADAjTfeCATPOsCGG24IwM0331zxHmuuuSYAF1xwQXbsN7/5TYOu2JSJ+++/Hwhez/vuuw8I+VjqhZQNrc4ZZ5wBwGGHHTbBc2UjeZUBtt56a8DeY/Hhhx8CcNpppwEdVT8A888/PwB/+MMfANh+++176eqajxRno0ePBuBPf/oTEPIjzT333Nm5G220EQB77bUXEPIixSohY0xAiszdd98dCGP2ZJNNlp0z44wzAvDwww8DsNZaawFhXF9vvfV652KN6cN8++23AJx66qkAnHnmmQCMGDGuTpYUeq2EZ15jjDHGGGOMMcaYNqctFEBSGQwZMiQ7lveAasdcu+StuBvXanz11VdAZeWTa665BgiVT1555RUA+vfvD1j1YyoZOHAgANdee23V52OlxvDhwzscA7jrrruAkFsDKvu66cjf/va3DsdGjRoFwFNPPQXAggsumD13zjnn9M6F1YmPPvoICIoVKTXUduqtAGpV3n33XQAGDx4MwJFHHglU3v8000wDwLbbbgvA2muvDcA999wDwOmnn56dK+VGX1cAqX1tttlmQFg3xAwYMAAIHj7Zucx88cUX2eN4vO0MKaqHDh1a9flXX301eyzPqP7uvPPOABx99NFAZaU0q4JMX+WTTz7JHktV+NOf/hSAQw45BIAtttgiO0cKoCeffBKA7bbbDoBNN90UgDvuuCM7t6+O6//973+zx5deeikQVMOq1pimKVA5d0rBuM4661S8n1RVyy67bHYsVmWZvoeUrcq5qPa0zz77ACH3YldoHo0jldSfG6Hk8yxrjDHGGGOMMcYY0+a0hQLo7rvvBsIOXDUmn3xyAOaYY45Oz3nzzTcB6NevX92urYyo0onUPbEXL88SSywBdO4BLBPyEsjb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\n",
      "text/plain": [
       "<Figure size 1440x180 with 30 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "##########################\n",
    "### VISUALIZATION\n",
    "##########################\n",
    "\n",
    "n_images = 15\n",
    "image_width = 28\n",
    "\n",
    "fig, axes = plt.subplots(nrows=2, ncols=n_images, \n",
    "                         sharex=True, sharey=True, figsize=(20, 2.5))\n",
    "orig_images = features[:n_images]\n",
    "decoded_images = decoded[:n_images][:, :-num_classes]\n",
    "\n",
    "for i in range(n_images):\n",
    "    for ax, img in zip(axes, [orig_images, decoded_images]):\n",
    "        curr_img = img[i].detach().to(torch.device('cpu'))\n",
    "        ax[i].imshow(curr_img.view((image_width, image_width)), cmap='binary')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### New random-conditional images"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Class Label 0\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlMAAABSCAYAAABwglFkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJztnXl8VOX1/983IYQQNkGJoCggCNqKCyiuX4tlcUctbhWXUqWtW1VE6oKK+nL/SVuta61iRStad4u0FUHcEFBBBUFBBGTfCiYCWe7vj8vnzJDEkGSSmclw3q8Xr0mGJHPPfZb7nM85z3mCMAxxHMdxHMdxakdWqi/AcRzHcRynIeOLKcdxHMdxnATwxZTjOI7jOE4C+GLKcRzHcRwnAXwx5TiO4ziOkwC+mHIcx3Ecx0kAX0w5juM4juMkQEKLqSAIjg2CYG4QBF8HQfCHuroox3Ecx3GchkJQ26KdQRBkA/OAfsASYBpwdhiGs+vu8hzHcRzHcdKbRJSpQ4CvwzBcEIbhFuAfwMC6uSzHcRzHcZyGQaMEfnc3YHHc90uA3uV/KAiCocBQgPz8/J7du3dP4CNTx8KFC1m9enVQ2f9luo2ZYh/AjBkzVodhuEv59zPFxh25n0Lm25gp9oGPRdzGBkFVNm5DGIa1+gcMAv4a9/25wANV/U7Pnj3DhsrWa9/ufcl0GxuyfWEYhsD0MINt9H6649jYkO0LQx+LodvYIKiujYmE+b4DOsR9v/vW99Ka0A92dhzHcRynDklkMTUN6BoEQacgCBoDZwGv1s1lOY7jOI7jNAxqnTMVhmFJEASXAhOAbOBvYRh+kegFhWFIEGw/PFkVmzZtYsWKFQCMGTPG3gPo0qULP/vZzwDo0CES1ho1it2GRD/bcRwnEygpKQFg8+bNrFq1apv32rVrB0B+fn5qLi4BSktLycqKdASf7zMD9ct169bxzDPPADB9+nQA+vTpA8CAAQMoKCgAtn3m1xUJ/cUwDP8F/KuOrsVxHMdxHKfBUffLswRJxFNQPtTq1at59dUo4vjpp58CMWWqdevWzJ8/H4CddtoJgBYtWpin4jipoHwuXyZ5zGVlZdt8H29bJtmZCZSWlvKf//wHgKuvvhqA+fPns2XLFgCys7OBmDI1bNgwLr74YqB+vP26ZOPGjQC8/vrrfPFFFERRlKJXr160bNkS2LH6ZHFxMQD/+9//7BnYqlUrgAbxTNS8uWbNGgDuvPNOXn75ZSD2zF+8OCo6EAQBp5xyChB79tcl6X+3HMdxHMdx0pj0diVqyLp164BIjVLOVE5ODgBr164FYO7cubRt2xaAlStXAtC0aVNyc3OTfbk1Qtd6xRVXADBx4kRbXZ9zzjkAnH/++QDsvvvuDcq7Ki0ttbaTxzhr1izzOtq3bw9Az549Adhjjz3MQ27IhGFIYWEhEHmGAI0bNwagefPm9nVD8BBFaWkpAOvXrwfgk08+Ma9x5513BmC33XYDoG3btqYGNJT2LCsrM6VNnu+yZctYsmQJEBun7733HhDVqPnpT38KwFFHHWWvyjVKl3G6efNmAB544AFGjx4NYHNoaWmptY+uV3bef//9nH322QDsskuFklFpgWy78cYbAXj22WdNkXnjjTcAuOiiixgwYAAQy6XV+GuoqJ9qbn3ooYd4+OGHgSh6A7F7AzFlUfWgJk2aRJs2bZJ2vbVB8+bf/vY3ACZMmMD333+/zc8sXboUgGnTpvF///d/QEx9q8vx1+AXU2VlZcyeHZ1gc9999wGwfPly6wRHHHEEEEuULCkp4YcffgCwpMpdd93VBk66TG7xrFq1ygb6zJkzgehBrAnt3nvvBeDzzz8H4E9/+pMl2qUjGuQaCP/4xz947LHHAPjuu6i6xpYtW+zBrLY866yzABg+fLgtJNOxvbaHJvJXXnmFV155BYgtmPbdd18AOnfubG241157AdF90KI/He3esGED//znPwH4+9//DsCXX35pE7bs0cOqX79+HHvssUDMxiZNmqSlbUpwXb9+PV9++SUA//rXv+z122+/BWJtq9eysjILm73++usA3HTTTZx44okAKZ93NMaeeOIJAG699VZb4Ddp0gSAffbZh169egEx53Ty5MkA7LfffhXCuOmCnDGFff76178C8P3339t408889thjvPnmmwCcfPLJABx55JFA5Jym2+L3x5A9S5cu5Te/+Q0A//3vf4FtF06VoT7+zTffADBv3jwOO+yw+rrUhCksLGTChAkAvP/++0DksO29995A1G4Qa7OuXbtWaPe6bM+G4/I6juM4juOkIQ1WmZJH9dZbbzFs2DAAFi1aBEDHjh3p27cvgL3q5z/44AOWL18OxFal7dq1M49fUmc6JFNK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\n",
      "text/plain": [
       "<Figure size 720x180 with 10 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Class Label 1\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x180 with 10 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Class Label 2\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlMAAABSCAYAAABwglFkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJztnXl4VdXV/z87N2FIggKCVQFRUJShVQFnW6xSwakWJ9pqrRbR1rb2tY4dbNG2arW+VdEO/vSt1qHVOrRYsQWqIo6IgkwWAS00lYoggYAQSO75/XH47nNyEyDJnS/r8zw8IcnNvXudvc8+a3332mu7IAgwDMMwDMMw2kdZvhtgGIZhGIZRzJgzZRiGYRiGkQbmTBmGYRiGYaSBOVOGYRiGYRhpYM6UYRiGYRhGGpgzZRiGYRiGkQbmTBmGYRiGYaRBWs6Uc260c26Rc26Jc+6aTDXKMAzDMAyjWHDtLdrpnEsA7wCfA2qA14EvBUGwMHPNMwzDMAzDKGzSUaYOA5YEQfBuEASbgT8Cp2WmWYZhGIZhGMVBeRp/2wv4d+z7GuDw1Bc55y4CLgKoqqoaduCBB6bxkfnjX//6F6tWrXIt/a7UbSwV+wDeeOONVUEQ9Ez9eanYuDOPUyh9G0vFPrB7EbOxKNiejU0IgqBd/4AzgXti338FuHN7fzNs2LCgWNna9h1el1K3sZjtC4IgAGYFJWyjjdOdx8Ziti8Icn8vJpNJ/y8X2DjduWxMR5n6D9An9n3vrT8zDKMVJJNJnAsDHn01DKPtBG3I/U0mkyQSiSy2prDQtWloaPA/S7W/rKzljJ9kMrnd3xsR6Vyh14H9nXP7Ouc6AF8EJmWmWYZhGIZhGMVBu5WpIAganHPfAv4OJID/C4JgQcZatg3kKb///vsAPP/88wwdOhSAAw44AGjudZciQRCwadMmABobG4FI3ejYsaOPJIololD0pP5tSakpFlu2RX19PQDPPfccAFOmTKFbt24AnHjiiQAMGjQIgE6dOhWNveq7xsZGNmzYAIR5BgAff/wx++23HwA9evQAilOF07hcv349U6dOBeB3v/sdENpz6aWXAnDccccBxT0HqT/Xrl0LwJIlS9i4cSMAvXv3bvK1oqIiDy0MUTudc34uVD8lEgk6duzofx9/fbHcVzuitraWDh06ANEzYPPmzf77yspKALZs2QLARx99RKdOnQDYbbfdAPzfb0slL4VrpTERJxsrAuks8xEEwWRgcobaYhiGYRiGUXSk5UzlEkVJP/7xjwG4++67gdDr7t69OwA//elPARg3blxJeNQirkLNnz8fgBtvvJFZs2YBsGbNGiCKTnr27MmYMWMA+P73v+9/lktFIFVpqq+v9zbU1tYC+O/feOMNpkyZAsCuu+7q2yv+858wFU8Kx1FHHeUVHL2+UJUAXYeamhquvfZaAF544QUANmzYwCc+8QkgskPf77XXXrluartRNPzOO+9w5513AjBt2jQA1q1b52266qqrABg7diyAVw4KGd1T//53uHH5kUce4Te/+Q0Aq1at8q/78MMPgUhZ7NWrVy6bmTHq6+t5/fXXAXj00UcBeOWVV/joo4+ASJG67bbbADj44IPzpjTGFafy8vBRpv6CKEdIvxNBEDRTK8rKygpeMZVtH3zwARDeb//973+BaP7T165du3q71XeVlZV+Ptpll12AaL7ZY489/Ot1bcrLy5s9RzP5XG2pD1pDPAds3bp1QKiAA7z33nvMnTsXgGeffRaAf/7zn/41nTt3BqJnyYQJExg2bFg6ZkTtz8i7GIZhGIZh7KQUhTK1ZcsWZsyYAcC9994L4NfwIfK8lcMwZswYn59RzMjbnjt3LtdcE57W89prrwGhGtDSWjDA8uXLmThxIgBLly4Fwohaa+jZQpFgY2OjV53Wr18PhOpZTU0NAG+//TYAf/vb3wBYtmyZVx4VWZWXl/tIUe+lPk8mk+y7774AXH311UCodhSSOqW+efrppwG49NJLvcLWtWtXAIYMGcKhhx4KhJEhwKJFi4BQtZHimhpZFwqycebMmQBccsklvv3K04BIiZRKqu+/+c1vFlSfxVH0q8j/8ssvB0JVUWNaSkEikWD58uVAqLJCpCwWutohlM/3wAMP8Itf/AII70sI+1n39ooVKwC44oor/OtzraKqb+K5ehqLyuFyzjVTOuJ/JzVVfdmxY0evWuQzD2x7yEaNycmTJ3sVUbYNGDAACOcW5RAffPDBAHTu3NnPJbJfucfr1q2juroaiJ47vXv39jlWuk8zqSZrTLX1euvvli5dyn333QfA3//+dyBcAZBt6n9dm02bNvlx/s477wDhc0k5rOn2e2HO0imUl5f7QaCvulAVFRX+wTpu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\n",
      "text/plain": [
       "<Figure size 720x180 with 10 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Class Label 3\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlMAAABSCAYAAABwglFkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJztnXl4VdX1v9+ThIQZJxIDYVAmtQoiVESpQxGnVn3Uatuntj4Oda7Tz87V1mq1Wv22zrVatVorji1oq62KI2icGBQRK4gVBcMYkCHj+f1x+axzchOm3OTek8t6nyfPTXKnvc4ezl6fvfbaQRiGOI7jOI7jOK2jINcFcBzHcRzH6cj4ZMpxHMdxHCcDfDLlOI7jOI6TAT6ZchzHcRzHyQCfTDmO4ziO42SAT6Ycx3Ecx3EywCdTjuM4juM4GZDRZCoIgiOCIJgbBMGHQRD8pK0K5TiO4ziO01EIWpu0MwiCQuADYAKwEHgD+HYYhu+1XfEcx3Ecx3GSTSbK1L7Ah2EYzg/DsBaYCBzbNsVyHMdxHMfpGBRl8N6+wCexvxcCY9JfFATBmcCZAN26dRu12267ZfCVuWPBggUsXbo0aOm5fLcxX+wDeOutt5aGYdg7/f/5YuO23E4h/23MF/vA+yJuY4dgUzY2IQzDVv0A3wDuiv39XeCWTb1n1KhRYUdlQ9k3e13y3caObF8YhiHwZpjHNno73XZs7Mj2haH3xdBt7BBsqY2ZLPN9CvSL/V2x4X+O4ziO4zjbDJlMpt4AhgRBsEsQBMXAt4DJbVMsx3Ecx3GcjkGrY6bCMKwPguB84N9AIXB3GIaz26xkTt4TbthJGgSbX452HKf9UF9sbGykoCDlY3u/dJKO2m1tbS0A9fX1dO7cGYDCwsKsliWTAHTCMPwX8K82KovjOI7jOE6HI6PJlNM+aLa9ObbGcwzDMOeeZroXUV1dDcCyZctYuXIlAP379wegR48edO3aFYg8jFyXf2toaGgAIlvXrFnDJ5+kNr/+73//A2DFihX06tULgP333x+AnXbaCci+V5UJjY2NQMor1O9FRamhpbCwsEPVWzr19fUArF69GkjVndpqjx49gFRd19XVAbDzzjsD0Lt3apNa586dW2y/ub4mqqd169YBMG/ePABWrlxp/VS2DBgwgJKSEiD35d4aZOOSJUuAyMZ3332XF154AcDq8rPPPrO+Wl5eDsBRRx0FwKmnnsr2228PdCz784HGxkbWr18PwOzZqYWvyspKAKZMmcKyZcuA1FgKqfHm4IMPBuDyyy8HsLprb/w4GcdxHMdxnAzoMMqUvKWamhog8u5feuklXnzxRQA++ugjIOUpDhs2DIBjjjkGiDz/0tJSiwnINrIhrjxJwZAHDJiXKwoKCux1a9euBWD9+vXm8UrB6datG5BSBfRckuIfVIbi4mIAU2Xq6+t56623APjPf/5jr919990BOOigg4BItclV/W2OMAytnqS6yRuePn26ecNz58611/Ts2ROA73znOwCccsopQMrWJNRZS6gPqr/9/e9/B1J1J6VD12HIkCFm07hx4wDo0qULkNx6bGho4IsvvgDg4YcfBuBvf/sbkKpPecp6DILA+uCOO+4IRH1y4MCBDB8+HIB9990XSI1B/fr1a/L6bBKGoakwb775JgAPPfQQkFJthBSaCRMmMH78eAD69OkDRH04qW0UojF15syZANx1110AvPbaa6ZW6TpA1B7VZ1999VUAJk6cyGOPPQZEynku0f1j5syZ3HjjjQD84x//AFIKOKRsT1/hCILA1NR99tkHgGuvvRaI2mauUZk1fnz66af861+pSKJ7770XwBR+iBR82d3Q0GB1e9xxxwFw4IEHtn/B6SCTqYaGBj777DMAbrvtNgC7McUHt/jE4b33UqfavPzyywAcf/zxAFxwwQVUVFTY67KB5Ob4oxqNGsGaNWvsBqyJ4nbbbWefsXjxYgDeeOMNABYuXGhLKZo4Dhw4EEh1eP1eWloKJGu5JX1SteOOO9rESZOqyspKu4FpIvzDH/4QgEGDBtl7k4DqdeXKlcyaNQuAZ599FoDly5cDqQmu5OYhQ4YAqeUHLR9NnToVgL322guAQw45JFE2irq6OmbMmAFEMrpuVuvXr282gH/wwQcmy3/1q18FsMnFYYcdxq677gpAp06d2r/wW0hjYyMffPABEE2iZHNLNjY0NNgYpLYge6qqqnj99deByFE45JBD+Na3vgXADjvsAGR/UqJJ79KlS4FofFm+fLlNJP/73/8CKYf1r3/9KwAnnXQSAF/+8pcBGDx4sDlFSZscqzyy7eOPPwaiJVtouhyt12sSJqfh3Xff5Y9//CMAV111VZPPziZqd7oHHHvssXz++edNnhNBEDRrU0EQWN3qM37yk9SRuvfccw8DBgxov8K3QEsbkNR/ZNfEiROZOHEiEDkvWsY79NBD7f4Wd340CZ4zZw6QvclUslq/4ziO4zhOByPRypRmrvPnz+d3v/sdAM888wwQBQ526dKFESNGAJG3tGbNGubPnw80Dz6cMWMGZWVlAFn3/CVdQrRcJzuqqqpMTVu4cGGT15SXl5tq9emnqbyo9fX1tlwiz//BBx8EUkGvxx6bOibxnHPOAVJLaklRpoTKU1JSYorMqaeeCqS8Sak68qIkZR9xxBHsscce9t5cEIahLcfK47377rtNhdAyz9ChQwEYP368qTDyeF966SVbIlN7feWVV4BUW5ZqkQTUF5csWcIdd9wBYCqcVI6SkhJbapYys3r1apPi33nnHSBSsmbPns3pp58ORMsOSQi8LygosLFByoU8ZsC2Xus1dXV1Fqx9yCGHANHy3ezZs5k+fToQLU88//zzFn6gZaZst2PZpUeNTX379rX6rKqqAlLL0VrSnTw5lUpQY9WBBx7I3nvvDcAuu+wCJEdlVFs69NBDgWjsnD59uo2nqqcddtjB7P73v/8N0ET1Uf/M5Rgqxezuu+8GolACiJQyXfvS0lLGjEmd7qalyRkzZphao7Ervgko28pUS9cyPZxlu+2248QTTwSiFYpBgwYBUFZW1qz9Ll26lOeffx6I7v3ZwpUpx3Ecx3GcDEi0MqXZ87vvvmsxU/IKjzjiCADOPPNMBg8eDERe1hdffMHbb78NRGqGZsHV1dVNFKJsoO/TY3FxsZVVHsWaNWuaxX5J1SgvL7f3yoPv0qWL/U8zcQWTVldXm9c8YcIEAEaOHGnXIGkKFURevhSn66+/nilTpgBRPNGHH34IwOOPP26qXHrdtzW6xqqTeHJDee5SBqdPn25q0te+9jUgCrqOe1GKk+vbt68pE2rfUgCkXiWNdevWWSyf7JHNY8aMMfVN9TlgwADzjBWrovijlStXmmqjgOyysrKct8+CggJLbSBbFZtRVFRkGyEU+zZ8+HAL4JXXLKZOnWrqs+q2rq7O6rctYm+2Nu1JEARN4hUBDjjgAKDpuKI4lOLiYrseUtDUF6dPn27jzp577gnACSecYMpsLutS3y3V8OKLLwZSdqWnq1i3bh1PPvkkEG2okBIUBIFtgsmlPVKdzj77bACmTZtm6osCy0844QQAzjjjDPr27QtEZV62bBlXX301EKlvqqekxGfKRsU1H3744facYk67d+8OpPqObNO4XFlZyapVq4BohSdbJHoypYFmt912s+BVNZavf/3rQKoRxRsLpHZraPeFntPEZJ999sm6pN7SjVg3UTXiiooKa9h6VKMpLCy098YHKUm0Gtg0MBYUFNjgr07WUdANuqyszCaCCgbWbo4wDO06nHXWWUCqo7XHQKdBN30nZjz/iZaNzz//fJs4aFKhthbfkalJxTPPPGNBvloe08nq2uWXNHbeeWdbPtAy7Je+9CUgZbM2PmjCUVpaam1cS2Vajn/iiSdsqVCD58EHH2wT5VzduIIgsHqXPeqL69evtw0fmkANHTrU7FV9a7LUq1cv65dauhg0aJDVb1s4AZlcJ5VDTgxgN2E9qq9BlM9Hm2QmTZpkNy3t/tt9990Tt2wLTZdn1Rbl2EydOtU2VGjyK+JLTUlAIRGTJk2yncGa7Gos6t27t7UttcU5c+bYhizZrftEtnIxbQ61ZY0B/fr1s3EzvS3Fd6VKPHn00UetbseOHZuVMgtf5nMcx3Ecx8mARCtTmllXVFRYNlp5eZLfGxsbTer85S9/CaSW9vTeUaNGAVF+lH79+mXd440HWgspEZqBl5SUWJnj5wzp7/S8UXV1dSxYsACIArTlZZSWlprXrCWYuCTaEVi3bh2//e1vgSjgUopOSUlJs+WwbGV413cUFhaaCiVVJb69On35JgxDC3DVsuXHH39sQZ8jR44EomVZedFJIZ7OQmWV6qnA465du9r/pHjEU3Lomui59evXWw4ZBfgOGzbMVL1couUG2SoVrqGhwZQBKVTFxcW2JKalX/XN1157zZRjKXSDBg2yvpqrPilVVcqoQir69OljY6vqMggCe17XQcrUggULTMnRmNa9e/fEpUmASFWur6+3TSNXXHEFkFJ5VIeqE6mNjz/+eE7ygW0M3QsGDBhgSpTGRilOVVVVZofSWvzhD39oFnivZTQpW0kjPn7ofqg+9sknn1hA/c033wyk5gNSkRVqkS2S1+Idx3Ecx3E6EIlWpkRJSUkThQUiz+jBBx+0RJ5KzgaYx6+Ymv322w9IeU+5UqakPMVVFM2216xZY0HIUqbiifXSt2rPnTvXkgDKC1bwa0VFhakm7RWYDVEMTFt4oboO77//PgDnnnuuJV/Tc/qeIUOGWL1mK+lhS8H7m4oHSY+xWrdunakASg2w8847W0I5xSEpti+Jnj00DV6W2iuveP369ZbAMW6/Yh6kbkhJve2228zL1Gcm5QxJKTfy5JWyomfPnhZfovpfsGCBxWhqO736bl1dnV0LKTcDBw5sdp2yaXNNTY2dGvHPf/6zyff36tXLVG0prsuXLzfFQ/1TGwdqampMabzkkkuA1KaQXNdhHI0fyu7+05/+lNdeew2I6jee9FLKnBK2jh07NlH2iIKCAlvt0P3wpptuAlIZ7aXaK1YvDENTXBUjpw0y7XmfyBTVjepKbe/NN9+0VSm9pmfPnhavF09nkg2SOWI7juM4juN0EJI7HY1RWFhoM2p5iL/4xS+AlLeRPgPt3LmzraHqTKn4rqps01JafyEP9uOPP7ZEeEpuKI/is88+s7gEqVArV65stn1ef69YscKUKc3Se/To0ea2b8nnteR5S6mQTc888wx//vOfgah+a2trrc6lPp177rkAnHfeeaYOJOnswTjpZ0l+9NFHlupByRt79uxp6/uyJ8keIjSNN0k/a7B79+6mjiqOqmfPntbGlTTx0UcfBVJJ9aRIKSYyCWef1dfXmwLzl7/8BYhSV4RhaImDVfbq6mrzmuPpTyAViyKlQ2k8Ro0aZW07m+02ft6ZlCmNJ4oXqqmpMbUqHrup+CkpalIjBw0aZCkHdL5kEpJ2hmFocZUqn5R8qY7pqNxKQqqdnElViSEqm+LytONZfS4d1aPUx/QUEUlEZVQ/koq/zz77WMyU7hFz5861+cC0adOAaOd/e4+tyR65NxCfTOkCabBrScobN26cdQhNopLWWNKly7fffttuSloGUadvaGiwtA9aFol38PTUENXV1U0CZiElwSvIMBuDQzyFgNDEQksi1113HZDKTp/e+bt06WJLs5dddhkQbXUtKSlJXH2mo7rTkt4jjzxiSwtaji4pKbHBQGekaVIxfPjwRAWhqx6XLVvGpEmTgCjjvtodRO1N9V9UVGQ3YJ3Jp4E/CALrpz/+8Y+B3Oa7UZmXLl3KnXfeCUQTRdVnfBlS1yR+DprGGy3p9e/f34J9Zb9SCGSb+NKrNuZoUqSlkyVLllh9ajJVUFBgk37ZrL585JFHWtqAJEyiRFVVFT//+c8BbJND/DD5dIqLi60OFV6g8xOffvrpxAZoq8xKT7KpHIolJSXWF3WPUSqWXXbZJTG5pjaG2pfqIgxD2yQwevRoIJVnSucoKv+iXrPvvvu2q43JnXI7juM4juN0ADqEMgWRx6oz57QUNm/ePPMGdd7VgQceaJ6hPKkkJI8TYRial6ilvIaGBpPcpSrJ5sGDB9vyiTyPESNG2Ixbgb3PPfccAK+//roF5uksrV133ZXjjz8eaP9tsHEPUHbW1dVZkKSWu+RVlZeXmzesuhw5cqSpNFoeSVIdbgzZrrp8+OGHgdQ5dlKfVK+FhYWWkFRqlZZfLrvsMsu6nAS742dfyavV0lBcjUo/vb6+vt7qNP08uMLCQvMok+D5y4558+aZ8i0VV0sMnTt3toBr2VpYWGjjjeyQ+rRmzRobg6QGdenSJSfKqmwpLy+3ZR4l5lQ9PPXUU8yePRugSb1JJVUKC6lWPXr0sPQuSSC+4UOqm1Q1MWDAAFv6kd2LFi3i+uuvB6K+q0z93/zmN21pNwl9sSW0rK7NWJdeeqmph0o1MmHCBFPC9XjXXXcBqfMLlSk+6cQ3A6mNSrUaO3asjS8Km1EIyeLFiznuuOOA9qlHV6Ycx3Ecx3EyoMMpU/KodOYe0CzNwIoVKywGR15TEgKV4zEL6ev3/fr1s2M25EnEj3qQ1xBPFJkeo3DaaacBcP/99/P73/8eiM4Du+WWW+xzdYp6W18L2bdmzRrzDuJJLrWVXpsHpMpVV1czb948IEom16VLFwvUlqKj9f7u3bsnNmZKsTXpMX0VFRWMGDECiAIo+/bta+v6jz/+OBCdr3jRRRfx9NNPA1EKglyi/lNWVmZpKbRZQGdhLVu2zI4eUWLLAw44wLzHiRMnApGqvG7dOuunSeiXUltKSkrs2Cq1UdXZoEGDmiQMhtTYJCVY7VixVi+++KLZqESd2Vam0tXCTp06mSIlJU3q79ixY22slZ2FhYV2bt0FF1wARMkhpd4khbjarZhMlVXpALp27drs+odhyGGHHQZE6QKkFr/yyiumyOk8xqRy+umnA3DyySc3q/cwDG1DhdqpNpNcd911liQ56bFTLaH67Nq1q42zGpceeughAO644w5Th6XktSUdZjIlNpZhOv6/Tp062QCmAG9NTDp37pyzgbuls/m0RFdRUWHSoxqzbkzdunWzTqwJRUsZzbXsd8opp1jgsxrSJ598YgOfzjlsK6lTdmm31quvvmoDknZZFBcX201VdaGbUWNjo2Wa1nWZPn26DWaaeEqu79q1ayJ32MRzKunGeeSRRwKpulHus/hORC0z6GZ9yimnAKnM1NpVdcYZZwC5nXDoepeWllpgrh5bysEV/10TTO3i0/luDQ0Ndr1yaZvalybtAwYM4Ac/+AEQOWPx3Xct3aTUV5XLSP1u+fLlNnCrTWRzqaixsbFZzrN4fiI9qm+Vl5c3q8/GxkbLf6bxSn23V69eiXRsSkpKmpw3uDmCILB60q7hX//610CqfVxzzTVAdBpD0tnY+bPf+973gOgsO7XTBx54wJz5b3/721koYduQ3rbjubTUVuN/awlby/BtuckneXckx3Ecx3GcDkSHU6Y2hTyk7bff3n5X1mkFiA4aNCjrAZPpaQJqa2tNOZMEvWLFimbLdpJghwwZYp7vppYr42egaVkwnhpCCoE88Uw9ZNmjQD95bWEYmtKSvtwXJ26LyqmyzZ8/33L76DN0rRoaGrKSj6k12bjl6WjDQHyrvOo3rqrp+XTlsaqqypSSXGTJTieuVmytKii18dlnnwWibfVFRUWcfPLJbVjKraempsaWHRVQP3r0aBsvNtXP4ihnmjJQa5m3pKTENs2obrNBPIWBrr/K3blz563KcxWGYZP0FxD1yWOOOSaRylRrkB1S2OPoGiahL2aC7iMnnXQSEKU3qa6uNuU4XXFOCmrTUpziKYNUZxUVFfY6rdR85StfAWDhwoW2uUubE4qLi9tslcOVKcdxHMdxnAzYrHsfBEE/4D6gDAiBP4VheGMQBDsADwEDgQXASWEYrmi/om45BQUFFneUfip6z5496devH5C9mXf8tHJIeYv6PT7Llucqz13v69WrVzMVqbGxsVn5pTxNmzbNkptK+Rg+fLjF77SV3SrnrFmzgChJGkSBkDrfa0uROlBVVWXqgIJl5XGsX7++RZWnrdlaZSqeGkAKVTzmpqWyqv51DZWUtaioyNppR6a+vp7f/OY3QLTlXNd06NChlrQz26ieZsyYwR133AFEiQ/32muvZtvpN8XatWu5+uqr7fOAJt6xUnxkS01VmSCVuV3XXQHlffr0sfitdDU8Hg8Wz5j+yCOPAJGyke715wL1nfhpCbrGrRkXlExWcUSyv6ioyBKuJk2taS3K7q775Nq1a03dSVo6IamC2gRQWVkJpNql6kxlPeecc+yeM2zYMCBqJy+//LK1700lN20tW9Li6oH/F4bhHsB+wHlBEOwB/AR4LgzDIcBzG/52HMdxHMfZptisqxSG4SJg0YbfVwdBMAfoCxwLHLzhZX8BXgB+3B6FbGxstNml0Iy6JU8hDEPbxac4DW0B3m233Wzm2t5eRvrsd9GiRUDKW1fMlNSXoqIiU5bi6QEgtdNGn6UZeBiGNmPXrjdtq7///vtNkVKSsosuusjictrKQ1b5VCZ5wMXFxbYtdVPXOK7YSeXSNdhzzz1NqdM1kjfdUnLI9qCxsXGrzh+sq6uznWoqs97f2NhodajHVatWWfvUkTl6/9ChQ+34nGx7w/GdMWpjqp9u3bptsv3EkyYCXH/99dxyyy1NPkNK4wMPPGBKR7ZRO7vmmmssUaoSqB599NG2C3VT114xfJdffrnFnuh6qa3edNNNWdlOn65+S2V47rnnePnll4FIJR4/frwdI5J+xuW6detMHVUs5OTJk3n99deBSMnSUU8aq7KJ6u72228HUvUgVVE70srLy7dIWVF9TZ482dT09LGrtLSU7373u21oQfuzMVVd7URH5sRXQXQf0f9y1Tfj1NTUWAoWtUfdd3bffXdLwaLxtkePHmaj2snChQuBVJyUbNNjW46tW3VXDYJgIDASqATKNky0ABaTWgZsF+KHq6qjq/P06tWr2Q2vtrbWpHs1Gm17Pe+887K2rV7fo4mgglRnzpxpeT4kve+00042MOl9umktXry4mXy9YsUKGzCVUVwNZMyYMZZPQ42ttLS03Q611E1fLF261DLxxs9ITL8OWtKDSFpWBx4+fHizIGAtvRQUFGRFgt7cpFM3Lt1Uq6qqmnVS2fzFF1/YZFrb5x955BFLYfH5558Dkfx+ww03WE6xbE+mVBerVq2yXFfaUnzUUUex5557As0zS69du9Zu3Ndeey2Q6n+6YckBUqZpLZ3kAtXdsmXL7Ob51ltvAXDrrbfa5FaTDdVBTU2NLcmeffbZQCqbtGxU+73vvvuAVE63bNaflvd0A6msrGTq1KlAZHNlZaVNOrRRRBP86dOn29KJ8rxVV1dbX1Xb0PJeNs+PVBmV00tZySsrK21c1Dh/0UUXWQoYlVF9cdq0adx6661AdEZddXV1MwdNztx9992X+Ozg6U5PUVFRs3xRtbW11sYvv/xyoOmByOqPSThsXe1s3rx53H///UAkRowfPx5oulFE7X7RokU2VskB0CSstrbW0tPIKWhsbGyze8kWzyqCIOgOPAZcFIbhqvhzYaoVtigVBEFwZhAEbwZB8KY6Qb6R7zbmu33gNuYL+W5jvtsHbmO+sC3YGGeLpqBBEHQiNZF6IAzDxzf8+/MgCMrDMFwUBEE5UNXSe8Mw/BPwJ4DRo0e3am2moKDAZpvy+CZMmADACSecYOqOZuX33nsvN998c5P/KSlke2ST3piN8kjlUcnLff/9901NkmQ5YMAA84RkjxScFStWWKJLJRuL2yGVTjb27t3bPkPeSSZq3ObqUGVRAspnn32Wxx57DMC2rh5wwAGmpEmF0bLDQQcdZB6y1Ln4mW5bs427tbRk46aW+err6+2sQQVEzp49u5nCJiV11qxZ5llJyaqpqTEblSjvwgsvBFJnL6YHB2fK5upRZVd7XbZsmXn/aq9Tp061TNGqM6mst9xyi2X+jm/HV9tV9uxvfOMb9lxbs6XjjbzvHXfc0epYywJ33nmnLS0cfPDBQOTBT5kyxVRyvR4ile6GG24A2vWUgU3ap+uuttOtW7cmajakwgGUDkKJYVXO+OkRGjs6depkY5PsOvroo4H2UTE2ZmP8LMQNzwEp9VNjpcab0047rUkSZ6DZEk86ugZahtYYplM32pK2uC9CpEC+8MILQKTCfP7553ZvUeD2kiVLbClbqQHiG2YuvvhioPmmhNaSiY2qoxkzZpjarTIrnGT27NmmkmtsnTlzpqXU0etlz+jRo23eEM/u31Zs9g4bpFrYn4E5YRj+X+ypycApG34/BZjUZqVyHMdxHMfpIGyJW3EA8F3gnSAIdBDTz4DfAg8HQXA68DFwUvsUMaWqSMVQIsMbb7wRSJ1yLs9BsQEvvPCCrY8rkPTKK68EsnvuUPr5e/KU9t57b0vqp6C/+fPnN0vMqRn1TjvtZEcjKAaqvLzc1ovl+cffn804DXmnkyal5tPjxo2zlBRSbd577z0rpwJyFRw/ZsyYFhOp5nobckuqlDy5mpoaiy156qmngNSZc/L+0wPqIYrdUCzUmDFj+P73vw9EsR7pQf3ZJH6OIqS8N51zpbQXc+bMsbYr5AFKcYPI1jFjxnDVVVfZ75CMmAyV75prrrHzK+NnBuq4DT1uiv79+1tch2KJctV2pSBJtenWrZttEde5bEuWLLEYKCk58eS+UmbKylJhsCNHjrQkj/qsbCYgFWo3KpdU3EWLFpmKpI1HcfUpHheUju4HZWVl/OxnPwOiI1eSEIDdElKQ33nnHc477zwgOgtS9VpbW2uvawm1T403J554Ivvvv3+T53KJxt7Bgwfb/UJpR1THs2bNsj6rMWjVqlVWb9oEorH1wgsvtGOR2lr1hy3bzfcKsLGrO75ti9MyBQUFllFawc46NPWVV16x3TjqQI2NjdbZ77nnHiA3B1Sm5+vQMt/YsWNtOUvLCX379rXlMuVw0dJBr169bOKkhtKpU6cmGc+TgMo2bdo0myRKhu7evbsFV/fo0QNIxuHWZAS8AAAFqUlEQVTTW0pL55tpgq8g+/r6+iZLIxDtIu3Xr5/toFJb7N279yZ3pWab9PbUvXt3W5KTdD5lyhRzaJRNWO18hx12sANzr7jiCiC1hKuJSxJsFCrLsGHDbBlBu7meeuopC2hND0ouKiqyfqmDxa+88sqc33hlT3r722uvvewGopvl4sWL7YakzRCacOyyyy7WT+XA9enTJ6eT/HRUBo2ht99+ux1q/MADDwCpcBDF6WiSH89vpknI4YcfDqTGpCRM8rcEtc2LL77Ywl+0iWJTEyiI2ofq9le/+hWQ2ljSHhOM1qLJ/d57720hO0888QQQTRjj5w9KPNluu+2sf2rTgByAPn36tOt4m4y7sOM4juM4TgelY0zFiZbrLr30UiCSJydOnGieh1SA/fbbjx/96EdAtNU8F2gWrIBelbmsrMwCyceNGwekvC0pAumPHY3OnTvbdc/l9W9L4mfTQcpGKU3yfIIgaPa6jojKXlRUZH3qrLPOAuDYY481ZUqBrVII9t9/f1NXs33+ZWspKCiw5WflilqyZImlVFHArtTHESNG2FgU94yTRlyp0jikdAhx0pW3jthui4qKTPU///zzmzzmI1Je7r33Xp588kmAZukDVq9ebUqT0gGMGjWKc845B8AU5CSqxnGKi4tNyb/kkktyXJpN0zHv1o7jOI7jOAmhwyhTQkFlism44oorEn+Sd3qcQUdZm3c2TlyFylfi7XTXXXdt8piPyN7y8nKOP/74HJcmO+R7G85n+vfvz7nnngtgj07ucGXKcRzHcRwnA/JCInHvynEcx3GcXOHKlOM4juM4Tgb4ZMpxHMdxHCcDgvStse36ZUGwBFgDLM3al7aenWhazgFhGPbe3JuCIFgNzG23UrUtW21jB69DyH8bt7Sdbgs2el9MDt4XN8I2YmNe90XI8mQKIAiCN8MwHJ3VL20FrS1nR7EP8t/GTMrpNiaHfG+nkP82ejttv/dmk3xvp9D6svoyn+M4juM4Tgb4ZMpxHMdxHCcDcjGZ+lMOvrM1tLacHcU+yH8bMymn25gc8r2dQv7b6O20/d6bTfK9nUIry5r1mCnHcRzHcZx8wpf5HMdxHMdxMiBrk6kgCI4IgmBuEAQfBkHwk2x97+YIgqBfEATPB0HwXhAEs4MguHDD/38VBMGnQRDM2PBz1BZ8ltuYI9rKxqTaB/lvo7dTtzHtc/Lavg3vcRtzRFvaCEAYhu3+AxQC84BdgWJgJrBHNr57C8pWDuyz4fcewAfAHsCvgEvdxm3HxiTbty3Y6O3UbdxW7HMb88dG/WRLmdoX+DAMw/lhGNYCE4Fjs/TdmyQMw0VhGL694ffVwBygbys+ym3MIW1kY2Ltg/y30dvpVpHvNua7feA25pQ2tBHI3jJfX+CT2N8LyaDQ7UUQBAOBkUDlhn+dHwTBrCAI7g6CYPvNvN1tTAgZ2Ngh7IP8t9Hb6TZvY77bB25jYsjQRsAD0I0gCLoDjwEXhWG4CrgdGATsDSwCbshh8doEt9Ft7Ajku33gNpIHNua7feA2shU2Zmsy9SnQL/Z3xYb/JYIgCDqRupgPhGH4OEAYhp+HYdgQhmEjcCcpuXJTuI05pg1sTLR9kP82ejt1GzeQ7/aB25hz2shGIHuTqTeAIUEQ7BIEQTHwLWBylr57kwRBEAB/BuaEYfh/sf+Xx152HPDuZj7KbcwhbWRjYu2D/LfR26nhNua/feA25pQ2tDHF1kast/YHOIpUtPw84OfZ+t4tKNc4IARmATM2/BwF3A+8s+H/k4FytzH/bUyqfduCjd5O3cZtyT63MX9sDMPQM6A7juM4juNkggegO47jOI7jZIBPphzHcRzHcTLAJ1OO4ziO4zgZ4JMpx3Ecx3GcDPDJlOM4juM4Tgb4ZMpxHMdxHCcDfDLlOI7jOI6TAT6ZchzHcRzHyYD/D5kGzksPy4EkAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 720x180 with 10 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Class Label 4\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x180 with 10 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Class Label 5\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x180 with 10 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Class Label 6\n"
     ]
    },
    {
     "data": {
      "image/png": "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fsLw4cMz08C9RCrxggULeOihh4CEmghRrk2HDh3o378/EBU1HjRokJXK0bNCa1ByEddMr527Q2vqmjVr7PmhnMWTTz7Z7M2lUh5677/4xS8C2IGWfv362QEz5Uw19nPpIms2U019eK5atYoJEyYA0cAYPXo0f/nLX4DGa4Rk+91oWhAU2tu4caMl07344ovAnifxZuNk0QKuu6+WL19usrNODeUCunNOSZAFBQU24dVfu3r/s7FvmoI2HkuXLuVvf/sbkEjUhkQCfir14loKbX7i8XiDE4tVVVX897+JyxxUe0gho/Xr19vPyq6SkhJbuHfloCVXWM/05kt99oMf/ACAe++9F0jYroMtv/3tb4HEgZ76VeKzbexqTZFdc+fOtZN6Qo7akCFDrKK95mlpaaltMERjFfGzzW4h++V0v/HGG7YuKbx+4okn2vqarXY0hp7lkydPBqJnxKuvvtroJkqku8+yczfhOI7jOI6TI2SNMrW3yPO9/fbbbQc+evRoe21nVWvDMLQk2WwtjSCPUHJmaWmphZKy4Vh5qkiKfuSRR4DEXVhXXnkl0HjtIXldyeFZecqZVBnrhysPOuggCy9nWnlIBwqb/Pvf/wYSHqQ8Y1XbHzhwYFYqwI2NG42vtWvXWm0e3ZygBPTt27fbzyh8eeihh5r3K2UqOXSoeyd1d+batWu55pprgF2HgVuKWCxmitQf/vAHew3qJpur1Err1q1N8VEIUOp5cXGxKVmZDONqLioEO2PGDDsM8pnPfAaI6madeOKJVvNMamR1dbXZKMVZ47uystLWJalbxcXFWTWu1WaFa9etW2djSweUysvLs/YAwc7YsGEDd9xxBxDNVR0A2dn9kMm1xtJJ9owGx3Ecx3GcHCS3tqlEMeHvfe97QOLotTyPG264AWj8Tj/tVt9//31LJlWFVO3gM43uhPr9739f5/Xx48fTt2/f3f58NiabN4YSInVXXRiGHH744UDU3lgsZl7wxo0bgahIYlFRkcXK1a8HHnhg2u/Q0t9TYdSePXvudWFUtV93nympOZuStesjD/75558HMM9xy5YtVvDx1FNPBXZ9lL6xXJRMjlepM6tXrzYVSar3e++9ByTGrqpHf+Mb3wASbZY6Wf+I/vr16/na174GROO9trbWikaqcnM6+luq2fXXX88999wDRDYrX2jSpEmmSEkJqKio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\n",
      "text/plain": [
       "<Figure size 720x180 with 10 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Class Label 7\n"
     ]
    },
    {
     "data": {
      "image/png": "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JV5Kstx2222tKs9//etfD+USignNG62rSnK49tprw/1Br5144ol85StfAWLvYrKgchrWm+x7Rnl5ebvjS2NSFdCTux/f/va3e7KpeSGTyYR+/NOf/gTAyJEjQwV/xV7m617YkW/JAP/fe18DfBj4f865GuByYKH3fj9gYfPfhmEYhmEYexS79Ux57zcCG5t/f8859xIwGpgJHN/8tt8BjwB5U3eVUn3xxRfz6quvArGHZtGiRSGbpqMWhazs7H3TnrJIss/hGzp0aPiutuISZC1q/1seAIhLB3zxi18E0luYNBvF2tTW1gYLS+nIo0ePDtdB10pW5ObNm0McVXZ8WdpQxtcVV1wRxqzkGjRoUPC+KUsq6fVInloPkYx6LtuLWQiyCx8qdhFo0XfKMPrGN74BwCc+8QkgPRZ/Z0i2VxlhjzzySOg/pWOndTxmoz5U3yXjajTHzj///KKMrdGaKc/pvHnzAHjwwQdD/JTior785S9z8MEHAy3PRIWW8YtpolevXh/YrqamplDG4uWXXwai66EClpqDxYjG7NatW7ntttuAeF7OmTMnnMXX2TGbax93aiV2zlUDU4DFwPBmRQvgTaJtwB5HNxFVOX300UfDwiX33iGHHNKpC5MMKM130G9Hbobe+xBopyq9O3bsCEG7uknp3KxiQYpGv379gutaab+VlZVs27YNiANH9Z7t27eHPkvr9pC28h577DEgKtuRXe17/PjxfPKTnwQINbV0A6uqqmqV0p0ck2naxlVb1E/J54YMGcLPfvYzIDqLD9IfUN8e3vuwffL73/8eiIyB4447DoiV4mJBCocO5M5kMqHvpAS3dbBz2vHeh4QH1Rx84IEHgGj7S4rTpZdeCkRbe6oDl30PSNt4bU9J0BqzZs2akPCidWTYsGFcd911QHrXzY4gI/yPf/wjK1asAOITTi688MKCydbhFdk51w/4M/A17/225Gs+6sE2zy9xzl3inFvinFuSzGIqJUpdxlKXD0zGUqHUZSx1+cBkLBX2BBmTdMgz5ZzrRaRI3e69/0vz05uccyO99xudcyOBt9r6X+/9TcBNAEcccUTOB8ap6vdNN90ERO50pdDrZPfdWe3ZlXEbGxtbBX13xkXY3TJmk8lkeO6554B4e2/MmDGce+65QM+fht1T8mlLYezYscEqVJDyG2+8EawObdnKIunTp08oA6Htwd69e+dkQXa3jDp5XkHnW7ZsCeNNsk6fPj1sayrwXlZVWVlZeL+8klVVVUFGeb46mvYL3S+j2qdU+tWrV4ctP7XnxBNPDFsp+bDwe3ouNjQ08PjjjwPw7LPPAtH4TFZZ7km6Wz55f++66y59fki3V9kKVXPPF90ho3OOLVuifCiVQdDYnDhxYijirLMGBw8e3Gp89uT5pj01TuWNu+WWW0K5GfXfOeecE7b58kFPrTcqrXLDDTeEe8gFF1wAEM5Q7EQbQz9nn5Pa2fVqt54pF33i/wAvee+vSbx0N/C55t8/B/ytU99sGIZhGIZRAnTEjPoIMBdY5px7vvm57wA/Ae50zl0EvA58qmeaGCHrXEGEOpV+0qRJoVBgR4I+GxoaQkCivE9VVVWpDLCUJv7222+zYMECIG7zzJkz2X///YF0xc90BlkEhx12WDh+5KmnngLgzTffDP2pgqt6HDNmTLCwVFogLddAffb0008DcfCncy54pBSvcdBBB4XiebIek3LIQmrrXDB5QApRtFTfqZg3xWasXLkyvCZvaSFjGLoTxZ289dZbwTusvqqpqWHkyJEFa1tXUD9pnD700ENANI5UBmHKlCmFaVw3kMlkuO+++wDCWW2aRyeddBJz5swBCLK2NX+yCyV/0OtpQOuOkiJU0Bnio5ouvfTSokmMaAt52q6++mog0gF0D/z0pz8NdD4WLFnqRGR7qDpKR7L5Hgc+aNR8rFPf1kUymUwIkFRtJdWQOO644zrl2quvrw8DTpOkpqYmlWe9aQFfuXJlqJGiIPPDDjusqCcGxFtbQ4cODTfmNWvWAPGNGmIlWZVtjzrqqJCxkbYbter1PPPMM0A8ngYOHBhqnp1++ulANHZ1E5aS3Nns00KMV41Lzcm//vWvQLSNov4444wzgCjoPE1zqrMklSiAe+65J8xFBWjPmjUrJA4UCxo/Ml40bpOvKSs4TUrD7lB/vfDCC9xzzz1AfFPUlvopp5wSlP2OyOac6/KB9PlCfaZDkN9///2gKJ522mlAlCGd1va3h679woULAcKZtBApxkC4H+Sy1ihkpKvbu8W7yhmGYRiGYaSAVB+0JA1x8+bNLF++HIiruspDc+CBB3ZK266qqgpWmDT3Pn36BI1WWnAarGm5NRcvXhzao/OGJk2alIo25oKCzefMmRP6V9u5r732WtjCUwD6WWedBURnD6bVwlJ5gFWrVrV4fuDAgcGTIc/UiBEjgjXUwQDyLiVIdDcKftfWs7yJTU1NIXhZZ9MVq/dUa488UrfeeisAzz33XJBp7ty5QOfXoDSgdU5rjGhqagrJE/Lg19TUpDIMoi10f1iwYEHwbmsdOeigg4Bo3nW2vxTYne9g/I6i4HqdNVhXVxfkVXB2Wtu+O7Sm3nvvvUC8DTdkyBCmTp0KdO9JA3Y2n2EYhmEYRgFIpWcqeQYbRFa4zkuqqakB4uDI2bNndypQrFevXkFjlwXW0NDQ6hy0QpKUG2DatGnhpPBx48YBsVenmJEFMGLECK666iogtoaXLl0aClmqv+SNTKsXIJlmq7YqTqq6uppZs2YBUfE8iILIOyNLWuTOPutMFm9jYyOTJk0C4niiNMynzuK9D9awxqPWigMOOCB43RT8Wizn7yVRHy5btgyI15pk4dUNGzYAkZdDa2xaPVTyHKlcRX19fVgrlT5/6KGHAlHsUGfHpeQuRMJHR9AY/OpXvwpEcUUXXnghEMemFjsTJkwAYh3gqKOOYvr06UA61pnCt8AwDMMwDKOISaVnSlqmHvfZZ5+QFq/T2LtqGTjnWqXapw1ZP/KWVVdXB0+H4jU6m7aZZpxzoQinHnU8RzHhnAvxGT/+8Y+BOEuqoqIivJa2DMTOorknq1BxRX369AnFEFUMMhnnVSw458Lck1dUhUnHjx8fvOTFPAflmVKJEcW9bdu2LcS9PfnkkwCceuqpqT/vU/cKeS9mzJgRzsJU38nT3RVPovo66blL0zyWTDpz7+STT06Ft6Y70HW+7LLLALjooouAaL1RVn8a1phUKlPtkYaL1tNoodNWXr9+/fYIuUsB9ZNSr3u6On0h0LaeFjWdb9bU1FS0AefZaFtH59IpaaBUUB+qRp8eN27cGAK3lW5eDEqjlAkpUyqDkCSXNVSKSZoUqLZI6zZsLqjfpDjpMW2UhupqGIZhGIZRIFxPnj/U6sucexvYDmzO25d2naG0bOd47/1u9wWdc+8BK3usVd1Lp2Us8j6E0pexo+N0T5DR5mJ6sLn4AewhMpb0XIQ8K1MAzrkl3vsj8vqlXaCr7SwW+aD0ZcylnSZjeij1cQqlL6ON057733xS6uMUut5W2+YzDMMwDMPIAVOmDMMwDMMwcqAQytRNBfjOrtDVdhaLfFD6MubSTpMxPZT6OIXSl9HGac/9bz4p9XEKXWxr3mOmDMMwDMMwSgnb5jMMwzAMw8iBvClTzrlTnHMrnXOrnHOX5+t7d4dzbqxz7mHn3Arn3L+dc19tfv6/nXPrnXPPN/+c1oHPMhkLRHfJmFb5oPRltHFqMmZ9TknL1/w/JmOB6E4Zgfhw1p78AcqB1cBEoBJ4AajJx3d3oG0jgcObf+8PvALUAP8NfNNk3HNkTLN8e4KMNk5Nxj1FPpOxdGTUT748U9OAVd77V733DcD/AjPz9N3t4r3f6L1/rvn394CXgNFd+CiTsYB0k4yplQ9KX0Ybp52i1GWIKGjaAAABoElEQVQsdfnAZCwo3SgjkL9tvtHA2sTf68ih0T2Fc64amAIsbn7qy865F51z851zg3bz7yZjSshBxqKQD0pfRhune7yMpS4fmIypIUcZAQtADzjn+gF/Br7mvd8G3Ah8CDgM2Aj8vIDN6xZMRpOxGCh1+cBkpARkLHX5wGSkEzLmS5laD4xN/D2m+blU4JzrRXQxb/fe/wXAe7/Je9/kvd8F3EzkrmwPk7HAdIOMqZYPSl9GG6cmYzOlLh+YjAWnm2QE8qdMPQPs55yb4JyrBM4D7s7Td7eLc84B/wO85L2/JvH8yMTbzgKW7+ajTMYC0k0yplY+KH0ZbZwGTMbSlw9MxoLSjTJGdDZivas/wGlE0fKrgf/K1/d2oF3HAh54EXi++ec04DZgWfPzdwMjTcbSlzGt8u0JMto4NRn3JPlMxtKR0XtvFdANwzAMwzBywQLQDcMwDMMwcsCUKcMwDMMwjBwwZcowDMMwDCMHTJkyDMMwDMPIAVOmDMMwDMMwcsCUKcMwDMMwjBwwZcowDMMwDCMHTJkyDMMwDMPIgf8DxzPzoJ7pjtUAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 720x180 with 10 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Class Label 8\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x180 with 10 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Class Label 9\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlMAAABSCAYAAABwglFkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJztnXmUlMXVh5+aHXBYFGRRFDS4gDsEIca4JYKaaOKeHJW4RD3GJEZNXGL0S4Sox0TNMZ4cWb5EkYhbYqJ87gguUVTMolEWFxCRJYzgMMrADF3fH83vdjMgDPRM99vNfc7hwDTd03Xfqrfeur9761aIMeI4juM4juNsHWWFboDjOI7jOE4x44spx3Ecx3GcHPDFlOM4juM4Tg74YspxHMdxHCcHfDHlOI7jOI6TA76YchzHcRzHyQFfTDmO4ziO4+RAToupEMLIEMLsEMI7IYQr26pRjuM4juM4xULY2qKdIYRyYA7wNeBD4FXg2zHGt9queY7jOI7jOMkmF2VqKPBOjPG9GOMaYDJwQts0y3Ecx3EcpzioyOGzOwELsn7+EDi45ZtCCOcD5wN06tRp8F577ZXDVxaOefPmsWzZsrCx/yt1G0vFPoCZM2cuizH2aPl6qdi4LY9TKH0bS8U+8HsRt7Eo2JSN6xFj3Ko/wMnA+KyfzwR+t6nPDB48OBYr69q+2etS6jYWs30xxgi8FkvYRh+n246NxWxfjH4vRrexKGitjbmE+RYCfbN+3nnda47jOI7jONsMuSymXgUGhBD6hxCqgNOBv7VNsxzHcRzHcYqDrc6ZijE2hxAuBp4AyoH/jTH+p81a5jiO4ziOUwTkkoBOjPH/gP9ro7Y4juM4juMUHTktpoqVuK621urVqwGorq4mhM0n6zuO4ziO47TEj5NxHMdxHMfJgW1GmWpqagLgww8/5J///CcAnTp1AmDo0KF07dq1YG1rDalUar2fy8qKfx0shVBbS4H1FMJSsNHZNtD92dzcDGRU76qqKqqqqgCKTv3+5JNPAHjggQc4/fTTAdhuu+0K2STHSSwltZjShDZ//nweeughAGbPng3Ap59+CsDChQtZunQpAF/4whcAuOiiixgxYgSQjAe4JuT58+cDcPvtt/P4448D0NjYCEDv3r1paGgA4MQTTwTg5z//OQAVFcns1pbhVfXNM888wyuvvALAe++9B6TtrKysBODgg9O1YI866igABg8ezC677AIko79ai+x+4YUXABg7dizPPfcckOnXQYMGATBu3DhU5K6YHsJr1qwB4KOPPgJg0aJF9OzZE4CddtoJoGgXF2Lt2rVAZvzec889/OUvfwFg2bJlQDp1ANL35k033QRAhw4d8t3UrUJzzTe+8Q0gPR9dcsklAEyZMgWAr3zlK0Bx9aHmn/r6esaOHQvAn//8ZwC6detGr169ADjllFMAOOSQQwCora1NlJ3ZTmjLdiWpne2F5tE333yTN954A8Dmyt13353a2loAampq8tqu4nkSOY7jOI7jJJBkShhbSH19PQC/+MUvgLS30blzZwBOOCF9XODOO+8MwAcffGBqwB577AHAgQcemCiFQ8rZNddcA8CLL75oYcpVq1YBsHjxYluhv/vuu0BGwTn22GPz2t7WEGM0JW3atGkA/OpXvwLSapSuv7yuVatWmcImb1+fGz58ODfccAMAO+ywA5BWqJLolUmpuf/++xkzZgwA77//PpAOPcve8vJyAF577TUAzjjjDJ544gkAunfvntc2bykam5MmTbI+XbAgc9KUlKkjjzwSgLPOOguAgw46yMJGSbr/NkW2qnH77bcD0NDQQMeOHYFMGGzFihUAPPXUU5x//vkA7LPPPvlu7hZTX19vc6YU8hCCefvz5s0DMrZsv/32ibzvslG48kc/+hGQfj5oLtL9l82kSZMATKm66667TIkr1DiNMVp/fPbZZ0D6GaBxprlSc0VFRQWLFy8GMIV/zz33NMW0mFAfSYU64ogjAPj444/tPVKhqqqq2G+//QC4++67Adh1112B9u+74pjBHMdxHMdxEkrRK1Pz5s3ja1/7GpBOLgfo06cPEyZMALBVqla3CxYsMBVAnofUjUIjz+N3v/sdALNmzQJg4MCBfPnLXwYyXv5LL73EvffeC2RyxbRyP+aYYxLjLaptS5cu5a677gJg/PjxQEZR7N+/v+Wvbb/99kA650Tqot4n+xYuXGg5Vl/60pcA6NKli/VrEpAHf+aZZwIZxQnS4xNg3333NXuXL18OwOuvvw6kr9fMmTMBOProo4Hk5UNIQZXSNH36dPOQBw4cCMDhhx9u+W2636Suzpo1iwEDBgCZfKKKigrrxyTZqxywiy++mFdffRVI59kAjB492pQL2Xbn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\n",
      "text/plain": [
       "<Figure size 720x180 with 10 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "for i in range(10):\n",
    "\n",
    "    ##########################\n",
    "    ### RANDOM SAMPLE\n",
    "    ##########################    \n",
    "    \n",
    "    labels = torch.tensor([i]*10).to(device)\n",
    "    n_images = labels.size()[0]\n",
    "    rand_features = torch.randn(n_images, num_latent).to(device)\n",
    "    new_images = model.decoder(rand_features, labels)\n",
    "\n",
    "    ##########################\n",
    "    ### VISUALIZATION\n",
    "    ##########################\n",
    "\n",
    "    image_width = 28\n",
    "\n",
    "    fig, axes = plt.subplots(nrows=1, ncols=n_images, figsize=(10, 2.5), sharey=True)\n",
    "    decoded_images = new_images[:n_images][:, :-num_classes]\n",
    "\n",
    "    print('Class Label %d' % i)\n",
    "\n",
    "    for ax, img in zip(axes, decoded_images):\n",
    "        curr_img = img.detach().to(torch.device('cpu'))\n",
    "        ax.imshow(curr_img.view((image_width, image_width)), cmap='binary')\n",
    "        \n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "numpy       1.15.4\n",
      "torch       1.0.0\n",
      "\n"
     ]
    }
   ],
   "source": [
    "%watermark -iv"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.1"
  },
  "toc": {
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
